serverStream.Read(inStream, 0, buffSize);The Clientusing System.Windows.Forms;using System.Net.Sockets;using System.Threading;namespace Client{ public partial class Form1 : Form { System.Net.Sockets.TcpClient clientSocket = new System.Net.Sockets.TcpClient(); NetworkStream serverStream = default(NetworkStream); string readData = null; public Form1() { InitializeComponent(); } //Connect to the Server private void connectButton_Click(object sender, EventArgs e) { clientSocket.Connect("127.0.0.1", 8888); serverStream = clientSocket.GetStream(); byte[] outStream = System.Text.Encoding.ASCII.GetBytes(nickNameTextBox.Text + "$"); serverStream.Write(outStream, 0, outStream.Length); serverStream.Flush(); //else //{ // MessageBox.Show("Connect to the server"); //} } private void sendButton_Click(object sender, EventArgs e) { if (serverStream == null) { MessageBox.Show("Please connect to a server."); return; } else { readData = "Conected to Chat Server ..."; msg(); //clientSocket.Connect("127.0.0.1", 8888); serverStream = clientSocket.GetStream(); byte[] outStream = System.Text.Encoding.ASCII.GetBytes(sendTextBox.Text + "$"); serverStream.Write(outStream, 0, outStream.Length); serverStream.Flush(); Thread ctThread = new Thread(getMessage); ctThread.Start(); } } private void getMessage() { while (true) { serverStream = clientSocket.GetStream(); int buffSize = 0; byte[] inStream = new byte[10025]; buffSize = clientSocket.ReceiveBufferSize; serverStream.Read(inStream, 0, buffSize); string returndata = System.Text.Encoding.ASCII.GetString(inStream); readData = "" + returndata; msg(); } } private void msg() { if (this.InvokeRequired) { this.Invoke(new MethodInvoker(msg)); } else { loggTextBox.Text = loggTextBox.Text + Environment.NewLine + " >> " + readData; } } }}The Servernamespace Server{ class Program { public static Hashtable clientsList = new Hashtable(); static void Main(string[] args) { Int32 port = 8888; IPAddress localAddr = IPAddress.Parse("127.0.0.1"); TcpListener serverSocket = new TcpListener(localAddr, port); TcpClient clientSocket = default(TcpClient); int counter = 0; serverSocket.Start(); Console.WriteLine("Chat Server Started ...."); counter = 0; while ((true)) { counter += 1; clientSocket = serverSocket.AcceptTcpClient(); byte[] bytesFrom = new byte[10025]; string dataFromClient = null; NetworkStream networkStream = clientSocket.GetStream(); try { networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { Console.WriteLine("klient ansluten"); Console.ReadLine(); dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom); dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")); clientsList.Add(dataFromClient, clientSocket); broadcast(dataFromClient + " Joined ", dataFromClient, false); Console.WriteLine(dataFromClient + " Joined chat room "); handleClinet client = new handleClinet(); client.startClient(clientSocket, dataFromClient, clientsList); serverSocket.Stop(); } //clientSocket.Close(); //serverSocket.Stop(); //Console.WriteLine("exit"); //Console.ReadLine(); } } public static void broadcast(string msg, string uName, bool flag) { foreach (DictionaryEntry Item in clientsList) { TcpClient broadcastSocket; broadcastSocket = (TcpClient)Item.Value; NetworkStream broadcastStream = broadcastSocket.GetStream(); Byte[] broadcastBytes = null; if (flag == true) { broadcastBytes = Encoding.ASCII.GetBytes(uName + " says : " + msg); } else { broadcastBytes = Encoding.ASCII.GetBytes(msg); } broadcastStream.Write(broadcastBytes, 0, broadcastBytes.Length); broadcastStream.Flush(); } } //end broadcast function }//end Main class public class handleClinet { TcpClient clientSocket; string clNo; Hashtable clientsList; public void startClient(TcpClient inClientSocket, string clineNo, Hashtable cList) { this.clientSocket = inClientSocket; this.clNo = clineNo; this.clientsList = cList; Thread ctThread = new Thread(doChat); ctThread.Start(); } private void doChat() { int requestCount = 0; byte[] bytesFrom = new byte[10025]; string dataFromClient = null; // Byte[] sendBytes = null; //string serverResponse = null; string rCount = null; requestCount = 0; while ((true)) { try { requestCount = requestCount + 1; NetworkStream networkStream = clientSocket.GetStream(); networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize); dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom); dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")); Console.WriteLine("From client - " + clNo + " : " + dataFromClient); rCount = Convert.ToString(requestCount); Program.broadcast(dataFromClient, clNo, true); } catch (Exception ex) { Console.WriteLine(ex.ToString()); }