сокет
пакет 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