// create new client connection private void NewConnectionBtn_Click(object sender, EventArgs e) { var socket = new EzSocket(null, _server.Port, new EzEventsListener() { OnConnectionClosedHandler = (EzSocket sock) => { _connectionsToServer.Remove(sock); RemoveClientConnection(sock); }, OnMessageReadHandler = (EzSocket sock, byte[] buff) => { WriteSocketOutputClientSide(sock, "Read: '" + System.Text.Encoding.UTF8.GetString(buff) + "'."); }, OnMessageSendHandler = (EzSocket sock, byte[] data) => { WriteSocketOutputClientSide(sock, "Sent " + data.Length + " bytes."); }, }); if (socket.Connected) { socket.StartReadingMessages(); _connectionsToServer.Add(socket); AddClientConnection(socket); } }
// write output for a socket - on client side private void WriteSocketOutputClientSide(EzSocket socket, string msg) { ClientOutputBox.Invoke(new MethodInvoker( delegate { ClientOutputBox.Text += "[Socket " + socket.SocketId + "] " + msg + Environment.NewLine; }) ); }
// remove client connection from clients list. private void RemoveClientConnection(EzSocket socket) { ClientSocketsList.Invoke(new MethodInvoker( delegate { ClientSocketsList.Items.Remove("Socket " + socket.SocketId); }) ); }
// select target socket private void PickTargetSocket(EzSocket socket) { _targetSocket = socket; showActiveSocket.Invoke(new MethodInvoker( delegate { if (_targetSocket != null) { showActiveSocket.Text = "Send from socket: " + socket.SocketId; } else { showActiveSocket.Text = "No active socket to send from."; } }) ); }