public static void SendMsgToAll(string nick, string msg) { StreamWriter writer; ArrayList toRemove = new ArrayList(0); Chat.Sockets.TcpClient[] tcpClient = new Chat.Sockets.TcpClient[ChatServer.nickName.Count]; ChatServer.nickName.Values.CopyTo(tcpClient, 0); for (int cnt = 0; cnt < tcpClient.Length; cnt++) { try { if (msg.Trim() == "" || tcpClient[cnt] == null) { continue; } writer = new StreamWriter(tcpClient[cnt].GetStream()); writer.WriteLine(nick + ": " + msg); writer.Flush(); writer = null; } catch (Exception e44) { e44 = e44; string str = (string)ChatServer.nickNameByConnect[tcpClient[cnt]]; ChatServer.SendSysMsg("**" + str + "** has left the room."); ChatServer.nickName.Remove(str); ChatServer.nickNameByConnect.Remove(tcpClient[cnt]); } } }
private void startChat() { reader = new System.IO.StreamReader(client.GetStream()); writer = new System.IO.StreamWriter(client.GetStream()); writer.WriteLine("Welcome to Chat"); nickName = GetNick(); while (ChatServer.nickName.Contains(nickName)) { writer.WriteLine("ERROR - Nickname already exists! Please try a new one"); nickName = GetNick(); } ChatServer.nickName.Add(nickName, client); ChatServer.nickNameByConnect.Add(client, nickName); ChatServer.SendSysMsg("**" + nickName + "** has joined the room"); writer.WriteLine("Now talking .... \r\n-----------------"); writer.Flush(); Thread chatThread = new Thread(new ThreadStart(runChat)); chatThread.Start(); }