private string ProcessServerMessage(TCPTestServer.ServerMessage message) { string data = message.Data; if (message.Data.StartsWith("!")) { string[] split = data.Split(' '); switch (split[0]) { case "!ping": double sentTimeStamp = double.Parse(split[1]); double recTimeStamp = double.Parse(split[2]); double nowTimeStamp = (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds; double toServerTime = recTimeStamp - sentTimeStamp; double fromServerTime = nowTimeStamp - recTimeStamp; double totalTime = nowTimeStamp - sentTimeStamp; data = string.Format("!ping To Server: ({2}ms) {0}ms From Server: {1}", toServerTime.ToString("F2"), fromServerTime.ToString("F2"), totalTime.ToString("F2")); break; } } return(string.Format("{0}: {1}", message.SenderData.Name, data)); }
private void OnClientReceivedMessage(TCPTestServer.ServerMessage message) { string finalMessage = ProcessServerMessage(message); lock (cacheLock) { if (string.IsNullOrEmpty(cache)) { cache = string.Format("<color=green>{0}</color>\n", finalMessage); } else { cache += string.Format("<color=green>{0}</color>\n", finalMessage); } } }
private void ListenForData() { try { socketConnection = new TcpClient(IPAddress, Port); OnConnected(this); OnLog("Connected"); Byte[] bytes = new Byte[1024]; running = true; while (running) { // Get a stream object for reading using (stream = socketConnection.GetStream()) { int length; // Read incoming stream into byte array. while (running && stream.CanRead) { length = stream.Read(bytes, 0, bytes.Length); if (length != 0) { var incomingData = new byte[length]; Array.Copy(bytes, 0, incomingData, 0, length); // Convert byte array to string message. string serverJson = Encoding.ASCII.GetString(incomingData); TCPTestServer.ServerMessage serverMessage = JsonUtility.FromJson <TCPTestServer.ServerMessage>(serverJson); MessageReceived(serverMessage); } } } } socketConnection.Close(); OnLog("Disconnected from server"); OnDisconnected(this); } catch (SocketException socketException) { OnLog("Socket exception: " + socketException); } }
public void MessageReceived(TCPTestServer.ServerMessage serverMessage) { OnMessageReceived(serverMessage); }