title: Other computers can't connect my program
body: <p>I'm building a C# chat program, yet I'm facing a problem with outside connection.
  When the same computer connects both as server and as client, there seems to be no problem, yet when I try to host the connection on one computer, the other can't connect as a client.
  here's the relevant code:
  class Server:
          public void Connect(string ipAddr, string port)
          {
              server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);</p>
  
  <pre><code>        IPEndPoint ipLocal = new IPEndPoint(IPAddress.Any, Convert.ToInt32(port));
  
          server.Bind(ipLocal);//bind to the local IP Address...
          server.Listen(5);//start listening...
  
          // create the call back for any client connections...
          server.BeginAccept(new AsyncCallback(OnClientConnect), null);
      }
      public void Disconnect()
      {
          server.Close();
          server = null;
          tempSocket = null;
      }
  
      public void OnClientConnect(IAsyncResult asyn)
      {
          try
          {
              if (server != null)
              {
                  tempSocket = server.EndAccept(asyn);
  
                  WaitForData(tempSocket);
  
                  server.BeginAccept(new AsyncCallback(OnClientConnect), null);
              }
          }
          catch (ObjectDisposedException)
          {
              Debugger.Log(0, "1", "OnClientConnect: Socket has been closed.");
          }
          catch (Exception e)
          {
              MessageBox.Show(e.Message, "OnClientConnect Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
          }
  
      }
  </code></pre>
  
  <p>Client class:
          public void Connect(string ipAddr, string port)
          {
              client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
              IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ipAddr), Convert.ToInt32(port));
              client.Connect(ipe);</p>
  
  <pre><code>        clientListener = new Thread(OnDataReceived);
          isEndClientListener = false;
          clientListener.Start();
      }
  </code></pre>
  
  <p>I have no idea what's wrong here. Hope you can tell me what's wrong.</p>