title: Server Problems C#
body: <p>i want to create a simple client-server chat in C#.
  My problem is: when i try to connect the client to the server. I got this error:</p>
  
  <pre><code>Chat Server Started ....
  Unhandled exception: System.ArgumentOutOfRangeException: Specified argument out of range.
  Parameter name: size
     in System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
     in ConsoleApplication1.Program.Main(String[] args) in D:\Visual Studio\Chat Client-Server\ConsoleApplication1\Program.cs:line 57
  </code></pre>
  
  <p>P.s I translated the error in english there can be errors.</p>
  
  <p>Line 57: <code>networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);</code></p>
  
  <p>complete program:</p>
  
  <pre><code>using System;
  using System.Threading;
  using System.Net.Sockets;
  using System.Text;
  using System.Collections;
  using System.Net;
  
  namespace ConsoleApplication1
  
  {
  
  class Program
  
  {
  
      public static Hashtable clientsList = new Hashtable();
  
  
  
      static void Main(string[] args)
  
      {
          IPAddress ipAd = IPAddress.Parse("192.168.1.7");
  
          TcpListener serverSocket = new TcpListener(ipAd, 8001);
  
          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();
  
              networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize);
  
              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);
  
          }
  
  
  
          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());
  
              }
  
          }//end while
  
      }//end doChat
  
  } //end class handleClinet
  
  }//end namespace
  </code></pre>
  
  <p>How can I solve this? Thanks in advance.</p>