Spec-Zone.ru › Haxe Sys

сокет

пакет sys.net

расширен SslSocket, Socket, SslSocket, UdpSocket, Socket

Доступно в cs, php, neko, cpp, macro, java, lua, python, hl

Класс сокета TCP: позволяет как подключаться к заданному серверу и обмениваться сообщениями, так и запускать собственный сервер и ожидать подключений.

Статические методы

staticselect(read:Array<Socket>, write:Array<Socket>, others:Array<Socket>, ?timeout:Float):{write:Array<Socket>, read:Array<Socket>, others:Array<Socket>}

Ожидайте, пока один из сокетов группы будет готов для заданной операции:

  • read содержит сокеты, на которых мы хотим дождаться доступных данных для чтения,
  • write содержит сокеты, на которых мы хотим дождаться разрешения записи данных в их буферы вывода,
  • others содержит сокеты, на которых мы хотим дождаться возникновения исключительных условий.
  • select будет блокироваться, пока не будет выполнено одно из условий, в этом случае он вернёт сокеты, для которых это условие было истинным.

    In case a `timeout` (in seconds) is specified, select might wait at worst until the timeout expires.
    

Конструктор

new()

Создаёт новый неподключенный сокет.

Переменные

custom:Dynamic

Доступно в cs, php, neko, cpp, macro, java, python, hl

Пользовательское значение, которое может быть связано с сокетом. Может использоваться для получения пользовательских данных после select.

read onlyinput:Input

Поток, с которого можно читать доступные данные. По умолчанию поток блокируется до тех пор, пока не будут доступны запрошенные данные. Используйте setBlocking(false) или setTimeout, чтобы предотвратить бесконечное ожидание.

read onlyoutput:Output

Поток, в который можно отправлять данные. Обратите внимание, что в случае заполнения буфера вывода вы можете заблокироваться при записи данных. Используйте setBlocking(false) или setTimeout, чтобы предотвратить это.

Методы

accept():Socket

Принимает новое подключенное соединение клиента. Это вернёт подключенный сокет, на котором можно читать/писать данные.

bind(host:Host, port:Int):Void

Привязывает сокет к заданному хосту/порту, чтобы он мог затем прослушивать подключения там.

close():Void

Закрывает сокет. Убедитесь, что вы корректно закрываете все свои сокеты, иначе произойдёт сбой при исчерпании дескрипторов файлов.

connect(host:Host, port:Int):Void

Подключается к заданному серверу хосту/порту. Выбросит исключение в случае неудачного подключения.

host():{port:Int, host:Host}

Возвращает информацию о нашей стороне подключенного сокета.

listen(connections:Int):Void

Разрешает сокету прослушивать входящие запросы. Параметр указывает, сколько ожидающих подключений мы можем иметь, прежде чем они будут отклонены. Используйте accept() для принятия входящих подключений.

peer():{port:Int, host:Host}

Возвращает информацию о другой стороне подключенного сокета.

read():String

Читает все доступные данные в сокете.

Примечание: это не предназначено для совместного использования с setBlocking(false), так как оно всегда выбросит haxe.io.Error.Blocked. input методы следует использовать напрямую вместо этого.

setBlocking(b:Bool):Void

Изменяет режим блокировки сокета. Блокирующий сокет — это поведение по умолчанию. Неблокирующий сокет немедленно прервёт блокирующие операции, выбросив значение haxe.io.Error.Blocked.

setFastSend(b:Bool):Void

Позволяет сокету немедленно отправлять данные при записи в его вывод: это уменьшит задержку, но может увеличить количество пакетов/размер данных, особенно при многочисленных небольших записях.

setTimeout(timeout:Float):Void

Устанавливает таймаут (в секундах), после которого блокирующие операции сокета (чтение и запись) прерываются и выбросят исключение.

shutdown(read:Bool, write:Bool):Void

Закрывает сокет, либо для чтения, либо для записи.

waitForRead():Void

Блокируется, пока доступны данные для чтения в сокете.

write(content:String):Void

Записывает все данные в выходной поток сокета.

Примечание: это не предназначено для совместного использования с setBlocking(false), так как haxe.io.Error.Blocked может быть выброшено во время записи без указания того, сколько байтов было записано. output.writeBytes() следует использовать вместо этого, так как он возвращает эту информацию.

© 2005–2020 Haxe Foundation
Licensed under a MIT license.
https://api.haxe.org/sys/net/Socket.html

Spec-Zone.ru

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