title: TCP Client Not Reconnecting After Disconnect
body: <p>I've made a server and a client. The client should re-attempt to connect to the server if I close the server. I've made it so when the try/catch during waitForCommands fails, it restarts the attemptConnection method in a new thread. The problem I have here is that it simply won't reconnect. As a test, I open my TCP server and the TCP client. The client connects to the server as usual. Then, I close the TCP Server, and the clients spits out this error: 'System.Net.Sockets.SocketException' rapidly, and never connects. </p>
  
  <pre><code>class Program
  {
      public static TcpClient client = new TcpClient();
      public static NetworkStream stream;
      public static byte[] readBuffer;
  
      static void Main(string[] args)
      {
          new Thread(attemptConnection).Start();
      }
  
      public static void waitForCommands()
      {
          while (client.Connected)
          {
              try
              {
                  readBuffer = new byte[client.ReceiveBufferSize];
                  int data = stream.Read(readBuffer, 0, readBuffer.Length);
                  string plainText = Encoding.ASCII.GetString(readBuffer, 0, data);
                  if (plainText.Contains("mbox"))
                  {
                      MessageBox.Show("");
                  }
              }
  
              catch
              {
                  new Thread(attemptConnection).Start();
              }
  
          }
      }
  
      public static void attemptConnection()
      {
          while(!client.Connected)
          {
              try
              {  
                  client.Connect("127.0.0.1", 23154);
                  stream = client.GetStream();
                  new Thread(waitForCommands).Start();
              }
  
              catch(Exception ex)
              {
                  Console.WriteLine(ex.Data);
              }
          }
  
      }
  }
  </code></pre>
  
  <p>An interesting thing I noticed, is that if I write 'client.Close();' on the server exit event, I get no error messages when the client tries to reconnect. It just shows a blank screen and does nothing</p>
  
  <p>If you'd like to see the code that waits for connections on my server, it's really simple so I'm not sure why this problem is occuring.</p>
  
  <pre><code>    public static void waitForConnection()
      {
          server.Start();
          client = server.AcceptTcpClient();
          stream = client.GetStream();
          f.labelControl1.Text = "Connected";
      }
  </code></pre>