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); }
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); } }
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(); } } }