private void NotifyThatConversationStarted(PairHandler pair) { string message = "Conversation started between " + pair.ClientName1 + " and " + pair.ClientName2; BroadcastMessage(pair.Client1, message); BroadcastMessage(pair.Client2, message); }
public ClientHandler(PairHandler handler) { pairHandler = handler; clientSocket = handler.Client1; clientSocketFriend = handler.Client2; clientName = handler.ClientName1; }
public void Start() { TcpListener serverSocket = new TcpListener(IPAddress.Any, 8888); serverSocket.Start(); Console.WriteLine("Chat Server Started ...."); TcpClient clientSocket; while (true) { clientSocket = serverSocket.AcceptTcpClient(); clientSocket.ReceiveBufferSize = 4096; byte[] bytesFrom = new byte[4096]; //when client connects to server he sends: // -his username // -person username that he wants to chat with NetworkStream networkStream = clientSocket.GetStream(); networkStream.Read(bytesFrom, 0, clientSocket.ReceiveBufferSize); string dataFromClient = Encoding.ASCII.GetString(bytesFrom); dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")); string[] data = dataFromClient.Split(':'); clientsList.Add(data[0], clientSocket); if (!data[1].Equals("")) { UpdatePairTalk(data[0], data[1]); } PairTalk pair = CheckIfPairExist(); if (pair != null) { PairHandler pairHandler = new PairHandler( (TcpClient)clientsList[pair.ClientName1], pair.ClientName1, (TcpClient)clientsList[pair.ClientName2], pair.ClientName2); BroadcastOldChat(pairHandler.OldChatHistory, pairHandler.Client1, pairHandler.Client2); clientsList.Remove(pair.ClientName1); clientsList.Remove(pair.ClientName2); pairs.Remove(pair); Console.WriteLine("Conversation started between " + pair.ClientName1 + " and " + pair.ClientName2); NotifyThatConversationStarted(pairHandler); } } }