class sys.net.Socket
Available on cpp, java, neko, php
A TCP socket class : allow you to both connect to a given server and exchange messages or start your own server and wait for connections.
Class Fields
static function select(read:Array<Socket>, write:Array<Socket>, others:Array<Socket>, ?timeout:Float):{write:Array<Socket>, read:Array<Socket>, others:Array<Socket>}
Wait until one of the sockets groups is ready for the given operation : [read] contains sockets on which we want to wait for available data to be read, [write] contains sockets on which we want to wait until we are allowed to write some data to their output buffers, [others] contains sockets on which we want to wait for exceptional conditions. [select] will block until one of the condition is met, in which case it will return the sockets for which the condition was true. In case a [timeout] (in seconds) is specified, select might wait at worse until the timeout expires.
Instance Fields
A custom value that can be associated with the socket. Can be used to retreive your custom infos after a [select].
The stream on which you can read available data. By default the stream is blocking until the requested data is available, use [setBlocking(false)] or [setTimeout] to prevent infinite waiting.
The stream on which you can send data. Please note that in case the output buffer you will block while writing the data, use [setBlocking(false)] or [setTimeout] to prevent that.
Accept a new connected client. This will return a connected socket on which you can read/write some data.
function bind(host:Host, port:Int):Void
Bind the socket to the given host/port so it can afterwards listen for connections there.
Closes the socket : make sure to properly close all your sockets or you will crash when you run out of file descriptors.
function connect(host:Host, port:Int):Void
Connect to the given server host/port. Throw an exception in case we couldn't sucessfully connect.
function listen(connections:Int):Void
Allow the socket to listen for incoming questions. The parameter tells how many pending connections we can have until they get refused. Use [accept()] to accept incoming connections.
function peer():{port:Int, host:Host}
Return the informations about the other side of a connected socket.
function setBlocking(b:Bool):Void
Change the blocking mode of the socket. A blocking socket is the default behavior. A non-blocking socket will abort blocking operations immediatly by throwing a haxe.io.Error.Blocking value.
function setFastSend(b:Bool):Void
Allows the socket to immediatly send the data when written to its output : this will cause less ping but might increase the number of packets / data size, especially when doing a lot of small writes.
function setTimeout(timeout:Float):Void
Gives a timeout after which blocking socket operations (such as reading and writing) will abort and throw an exception.