TCPListener
Прослушивает новые сетевые подключения.
Следующая программа создаёт эхо-сервер, который прослушивает подключения на порту 8989 и возвращает любые полученные данные.
use "net"
class MyTCPConnectionNotify is TCPConnectionNotify
fun ref received(
conn: TCPConnection ref,
data: Array[U8] iso,
times: USize)
: Bool
=>
conn.write(String.from_array(consume data))
true
fun ref connect_failed(conn: TCPConnection ref) =>
None
class MyTCPListenNotify is TCPListenNotify
fun ref connected(listen: TCPListener ref): TCPConnectionNotify iso^ =>
MyTCPConnectionNotify
fun ref not_listening(listen: TCPListener ref) =>
None
actor Main
new create(env: Env) =>
try
TCPListener(env.root as AmbientAuth,
recover MyTCPListenNotify end, "", "8989")
end
actor tag TCPListener
Конструкторы
create
Прослушивает подключения IPv4 и IPv6.
new tag create(
auth: (AmbientAuth val | NetAuth val | TCPAuth val |
TCPListenAuth val),
notify: TCPListenNotify iso,
host: String val = "",
service: String val = "0",
limit: USize val = 0,
read_buffer_size: USize val = 16384,
yield_after_reading: USize val = 16384,
yield_after_writing: USize val = 16384)
: TCPListener tag^
Параметры
- auth: (AmbientAuth val | NetAuth val | TCPAuth val | TCPListenAuth val)
- notify: TCPListenNotify iso
- host: String val = ""
- service: String val = "0"
- limit: USize val = 0
- read_buffer_size: USize val = 16384
- yield_after_reading: USize val = 16384
- yield_after_writing: USize val = 16384
Возвращает
- TCPListener tag^
ip4
Прослушивает подключения IPv4.
new tag ip4(
auth: (AmbientAuth val | NetAuth val | TCPAuth val |
TCPListenAuth val),
notify: TCPListenNotify iso,
host: String val = "",
service: String val = "0",
limit: USize val = 0,
read_buffer_size: USize val = 16384,
yield_after_reading: USize val = 16384,
yield_after_writing: USize val = 16384)
: TCPListener tag^
Параметры
- auth: (AmbientAuth val | NetAuth val | TCPAuth val | TCPListenAuth val)
- notify: TCPListenNotify iso
- host: String val = ""
- service: String val = "0"
- limit: USize val = 0
- read_buffer_size: USize val = 16384
- yield_after_reading: USize val = 16384
- yield_after_writing: USize val = 16384
Возвращает
- TCPListener tag^
ip6
Прослушивает подключения IPv6.
new tag ip6(
auth: (AmbientAuth val | NetAuth val | TCPAuth val |
TCPListenAuth val),
notify: TCPListenNotify iso,
host: String val = "",
service: String val = "0",
limit: USize val = 0,
read_buffer_size: USize val = 16384,
yield_after_reading: USize val = 16384,
yield_after_writing: USize val = 16384)
: TCPListener tag^
Параметры
- auth: (AmbientAuth val | NetAuth val | TCPAuth val | TCPListenAuth val)
- notify: TCPListenNotify iso
- host: String val = ""
- service: String val = "0"
- limit: USize val = 0
- read_buffer_size: USize val = 16384
- yield_after_reading: USize val = 16384
- yield_after_writing: USize val = 16384
Возвращает
- TCPListener tag^
Общедоступные методы
set_notify
Изменить уведомление.
be set_notify( notify: TCPListenNotify iso)
Параметры
- notify: TCPListenNotify iso
dispose
Остановить прослушивание.
be dispose()
Общедоступные функции
local_address
Возвращает связанный IP-адрес.
fun box local_address() : NetAddress val
Возвращает
- NetAddress val
close
Освободить ресурсы.
fun ref close() : None val
Возвращает
- None val
© 2016-2020, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/net-TCPListener