Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
    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;
        //}
    }
Exemplo n.º 3
0
    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()}");
        }
    }