static void MessageProcess(byte[] buffer, Socket socket, IPEndPoint ipend) { BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream(buffer)) { ms.Position = 0; BloMessage bm = (BloMessage)bf.Deserialize(ms); Console.WriteLine(bm.Message); } }
private void ProcessMessage(BloMessage bloMessage, IPEndPoint ipend) { Debug.Log(bloMessage.MessageType.ToString()); switch (bloMessage.MessageType) { case MessageType.Debug: actions.Enqueue(() => { consoleObj.GetComponent <ConsoleScript>().WriteText(ipend.ToString() + ": " + bloMessage.Message); }); break; case MessageType.Connect: if (!PlayerInList(ipend)) { players.Add(new Player { ipend = ipend }); Debug.Log("Добавлен новый пользователь: " + ipend.ToString()); } actions.Enqueue(() => { consoleObj.GetComponent <ConsoleScript>().WriteText(ipend.ToString() + ": " + bloMessage.Message); }); break; case MessageType.Disconnect: lock (lockObj) { IEnumerable <Player> items = players.Where(item => item.ipend.ToString() == ipend.ToString()); foreach (var c in items) { players.Remove(c); } } actions.Enqueue(() => { consoleObj.GetComponent <ConsoleScript>().WriteText(ipend.ToString() + ": " + bloMessage.Message); }); break; } Debug.Log("Вызван ProcessMessage"); //MessageScript message = DeserializeBinary<MessageScript>(buffer); //switch (message.MessageType) //{ // case MessageType.Connect: // log.WriteLine(message.Message); // break; //} }
private void ServerListenMessage() { while (isWorking) { IPEndPoint ipend = new IPEndPoint(IPAddress.Any, StartNetworkScript.um.EndPoint.Port); byte[] message = StartNetworkScript.um.Receive(ref ipend); BloMessage bloMessage = DeserializeBinary <BloMessage>(message); if (!PlayerInList(ipend)) { players.Add(new Player { ipend = ipend }); Debug.Log("Добавлен новый пользователь: " + ipend.ToString()); } Task.Run(() => ProcessMessage(bloMessage, ipend)); Debug.Log($"Получено {message.Length} байт от {ipend.ToString()}"); } }