public void Update() { if (server.Pending()) { clients.Add(server.AcceptTcpClient()); } foreach (TcpClient client in clients) { var stream = client.GetStream(); if (stream.DataAvailable) { byte[] buffer = NetworkStreamReader.Read(stream, client.ReceiveBufferSize); Mirroring(client, buffer); var message = restMessage + System.Text.Encoding.UTF8.GetString(buffer); restMessage = ""; string[] messages = message.Split('뷁'); for (int i = 1; i < messages.Length; ++i) { string msgRaw = messages[i]; string[] msgs = msgRaw.Split('끊'); if (msgs.Length == 1) { restMessage = msgs[0]; continue; } string msg = msgs[0]; if (msg.Length == 0) { continue; } if (msg.Length == 0) { continue; } foreach (OnMessageReceived fn in onMessageReceived) { NetworkDecorator.NetworkMessage m = NetworkDecorator.StringToMessage(msg); fn(client, m); if (m.header == NetworkHeader.ClOSE) { removingClients.Add(client); } } } } } foreach (TcpClient client in removingClients) { clients.Remove(client); } removingClients.Clear(); }
public void Update() { if (!NetworkValues.isNetwork) { return; } var stream = client.GetStream(); if (stream.CanRead && stream.DataAvailable) { byte[] buffer = NetworkStreamReader.Read(stream, client.ReceiveBufferSize); var message = restMessage + System.Text.Encoding.UTF8.GetString(buffer); restMessage = ""; string[] messages = message.Split('뷁'); if (onMessageReceived.Count > 0) { for (int i = 1; i < messages.Length; ++i) { string msgRaw = messages[i]; string[] msgs = msgRaw.Split('끊'); if (msgs.Length == 1) { restMessage = msgs[0]; continue; } string msg = msgs[0]; if (msg.Length == 0) { continue; } NetworkDecorator.NetworkMessage m = NetworkDecorator.StringToMessage(msg); foreach (OnMessageReceived fn in onMessageReceived) { fn(m); } } } } }