IEnumerator HandleServer() { while (true) { server.DispatchCallback(status); int netMessagesCount = server.ReceiveMessagesOnListenSocket(listenSocket, netMessages, maxMessages); if (netMessagesCount > 0) { for (int i = 0; i < netMessagesCount; i++) { // ref NetworkingMessage netMessage = ref netMessages[i]; NetworkingMessage netMessage = netMessages[i]; Debug.Log("Message received from - ID: " + netMessage.connection + ", Channel ID: " + netMessage.channel + ", Data length: " + netMessage.length); netMessage.Destroy(); } } Thread.Sleep(15); yield return(null); } }
void Update() { if (networkClient != null) { networkClient.DispatchCallback(status); int netMessagesCount = isServer ? networkClient.ReceiveMessagesOnListenSocket(listenSocket, netMessages, maxMessages) : networkClient.ReceiveMessagesOnConnection(connection, netMessages, maxMessages); if (netMessagesCount > 0) { for (int i = 0; i < netMessagesCount; i++) { ref NetworkingMessage netMessage = ref netMessages[i]; Debug.Log("Message received from server - Channel ID: " + netMessage.channel + ", Data length: " + netMessage.length); netMessage.CopyTo(messageDataBuffer); netMessage.Destroy(); string result = Encoding.ASCII.GetString(messageDataBuffer); messages.Add(result); } } }
static void Run(CancellationTokenSource cts) { ushort port = 8080; NetworkingSockets server = new NetworkingSockets(); Address address = new Address(); address.SetAddress("::0", port); uint listenSocket = server.CreateListenSocket(ref address); StatusCallback status = (info, context) => { switch (info.connectionInfo.state) { case ConnectionState.None: break; case ConnectionState.Connecting: server.AcceptConnection(info.connection); break; case ConnectionState.Connected: Console.WriteLine("Client connected - ID: " + info.connection + ", IP: " + info.connectionInfo.address.GetIP()); break; case ConnectionState.ClosedByPeer: server.CloseConnection(info.connection); Console.WriteLine("Client disconnected - ID: " + info.connection + ", IP: " + info.connectionInfo.address.GetIP()); break; } }; #if VALVESOCKETS_SPAN MessageCallback message = (in NetworkingMessage netMessage) => { Console.WriteLine("Message received from - ID: " + netMessage.connection + ", Channel ID: " + netMessage.channel + ", Data length: " + netMessage.length); }; #else const int maxMessages = 20; NetworkingMessage[] netMessages = new NetworkingMessage[maxMessages]; #endif while (!cts.IsCancellationRequested) { server.DispatchCallback(status); #if VALVESOCKETS_SPAN server.ReceiveMessagesOnListenSocket(listenSocket, message, 20); #else int netMessagesCount = server.ReceiveMessagesOnListenSocket(listenSocket, netMessages, maxMessages); if (netMessagesCount > 0) { for (int i = 0; i < netMessagesCount; i++) { ref NetworkingMessage netMessage = ref netMessages[i]; Console.WriteLine("Message received from - ID: " + netMessage.connection + ", Channel ID: " + netMessage.channel + ", Data length: " + netMessage.length); netMessage.Destroy(); } } #endif Thread.Sleep(15); }