package cpp.net
Available on cpp
The ThreadServer can be used to easily create a multithreaded server where each thread polls multiple connections. To use it, at a minimum you must override or rebind clientConnected, readClientMessage, and clientMessage and you must define your Client and Message.
new()Creates a ThreadServer.
connectLag:FloatPolling timeout.
errorOutput:OutputStream to send error messages.
initialBufferSize:IntSpace allocated to buffers when they are created.
listen:IntNumber of total connections the server will accept.
maxBufferSize:IntMaximum size of buffered data read from a socket. An exception is thrown if the buffer exceeds this value.
maxSockPerThread:IntThe most sockets a thread will handle.
messageHeaderSize:IntMinimum message size.
nthreads:IntNumber of server threads.
updateTime:FloatTime between calls to update.
addSocket(s:Socket):VoidCalled when the server gets a new connection.
dynamicafterEvent():VoidCalled after a client connects, disconnects, a message is received, or an update is performed.
dynamicclientConnected(s:Socket):ClientCalled when a client connects. Returns a client object.
dynamicclientDisconnected(c:Client):VoidCalled when a client disconnects or an error forces the connection to close.
dynamicclientMessage(c:Client, msg:Message):VoidCalled when a message has been recieved. Message handling code should go here.
dynamiconError(e:Dynamic, stack:CallStack):VoidCalled when an error has ocurred.
dynamicreadClientMessage(c:Client, buf:Bytes, pos:Int, len:Int):{msg:Message, bytes:Int}Called when data has been read from a socket. This method should try to extract a message from the buffer. The available data resides in buf, starts at pos, and is len bytes wide. Return the new message and the number of bytes read from the buffer. If no message could be read, return null.
run(host:String, port:Int):VoidStart the server at the specified host and port.
sendData(s:Socket, data:String):VoidSend data to a client.
stopClient(s:Socket):VoidShutdown a client's connection and remove them from the server.
dynamicupdate():VoidThis method is called periodically. It can be used to do server maintenance.
work(f:() ‑> Void):VoidInternally used to delegate something to the worker thread.
© 2005–2020 Haxe Foundation
Licensed under a MIT license.
https://api.haxe.org/cpp/net/ThreadServer.html