Spec-Zone.ru › Pony

TCPListener

[Source]

Прослушивает новые сетевые подключения.

Следующая программа создаёт эхо-сервер, который прослушивает подключения на порту 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

[Source]

Прослушивает подключения 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

[Source]

Прослушивает подключения 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

[Source]

Прослушивает подключения 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

[Source]

Изменить уведомление.

be set_notify(
  notify: TCPListenNotify iso)

Параметры

  • notify: TCPListenNotify iso

dispose

[Source]

Остановить прослушивание.

be dispose()

Общедоступные функции

local_address

[Source]

Возвращает связанный IP-адрес.

fun box local_address()
: NetAddress val

Возвращает

  • NetAddress val

close

[Source]

Освободить ресурсы.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API