Esempio n. 1
0
 public TcpChatMessage RecieveMessage()
 {
     byte[] recieved = new byte[_client.Client.ReceiveBufferSize];
     _client.Client.Receive(recieved, _client.Client.ReceiveBufferSize, SocketFlags.None);
     returnMessage = TcpChatMessage.Parse(recieved);
     return(returnMessage);
 }
Esempio n. 2
0
        private void InvokeLoginRelated(Delegate[] delegates, TcpChatMessage message)
        {
            var handleTasks = new Thread[delegates.Length];

            for (int a = 0; a < delegates.Length; a++)
            {
                ((Func <TcpChatMessage, int>)delegates[a])(message);
            }
        }
Esempio n. 3
0
        public virtual void TakeConnection(TcpClient client)
        {
            var netstream = client.GetStream();

            byte[] recieved = new byte[client.ReceiveBufferSize];
            try
            {
                do
                {
                    client.Client.Receive(recieved, client.ReceiveBufferSize, SocketFlags.None);
                    var a = TcpChatMessage.Parse(recieved);

                    var invokelist = Recieved.GetInvocationList();
                    if (invokelist.Length > 0)
                    {
                        InvokeAll(Recieved.GetInvocationList(), a);
                    }
                    //switch (a.MessageType)
                    //{
                    //    case TcpChatMessage.MessageTypes.ResponseMessagePacket:
                    //        foreach (var message in a.ResponseMessages)
                    //            Console.WriteLine($"[{message.Author.Username}] {message.Content}\r\n\r\n\t{message.CreationTime.ToString("hh:mm")}\r\n");
                    //        break;
                    //    case TcpChatMessage.MessageTypes.ResponseToken:
                    //        _token = a.Token;
                    //        break;
                    //}
                } while (client.Connected);
            } catch (Exception e)
            {
                Console.WriteLine($"Client died");
            }
            finally
            {
                GC.SuppressFinalize(recieved);
                if (client.Connected)
                {
                    client.Close();
                }
            }
        }