tcp / servidor de cliente ip no funciona a través de internet

Voy a configurar un pequeño servidor cliente / servidor en modo TCP / IP, uso VS2010, C # para desarrollar mis aplicaciones, busqué en Google mucho y pude encontrar algunos códigos fuente, pero ninguno de ellos funciona en Internet, Puedo obtener algunas respuestas en mi propio sistema local, es decir, ejecuto mi servidor, luego escucho mi propio host local (127.0.0.1) y luego envío algunos datos (por ejemplo, usando telnet), funciona bien, pero cuando hago lo mismo por internet ¡No consigo nada! Quiero usar el puerto 80, ya que quiero enviar / recibir datos http, he probado varios códigos fuente, aquí está el último código que he usado (y funciona en localhost con telnet)

// código del servidor:

form_load()
    IPAddress localAddress = IPAddress.Parse("127.0.0.1");
                Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint ipEndpoint = new IPEndPoint(localAddress, 80);

            // Bind the socket to the end point
            listenSocket.Bind(ipEndpoint);

            // Start listening, only allow 1 connection to queue at the same time
            listenSocket.Listen(1);
            listenSocket.BeginAccept(new AsyncCallback(ReceiveCallback), listenSocket);
            Console.WriteLine("Server is waiting on socket {0}", listenSocket.LocalEndPoint);

            // Start being important while the world rotates
            while (true)
            {
                 Console.WriteLine("Busy Waiting....");
                Thread.Sleep(2000);
            }

        public static void ReceiveCallback(IAsyncResult AsyncCall)
    {
         System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
        Byte[] message = encoding.GetBytes("I am a little busy, come back later!");

        Socket listener = (Socket)AsyncCall.AsyncState;
        Socket client = listener.EndAccept(AsyncCall);

        Console.WriteLine("Received Connection from {0}", client.RemoteEndPoint);
        client.Send(message);

        Console.WriteLine("Ending the connection");
        client.Close();
        listener.BeginAccept(new AsyncCallback(ReceiveCallback), listener);
    }

enviar datos (cliente), por supuesto, no he usado este código, ¿es correcto?

        public static string SendData()
    {
        TcpClient client = new TcpClient();
        client.Connect(IP, 80);
        StreamWriter sw = new StreamWriter(client.GetStream());
        StreamReader sr = new StreamReader(client.GetStream());

        //if statement evalutes to see if the user has selected to update the server
        //" " = update server
        //"" = do not update the server
        //if (updateData.Equals(""))
        //{
        //    space = "";
        //}
        //else if (!updateData.Equals(""))
        //{
        //    space = " ";
        //}
        //Refrences stream writer, username variable passed in from GUI
        //space variable provides update function: "" = dont update. " " = update database.
        sw.WriteLine("h");
        sw.Flush();
        //data send back from the server assigned to string variable 
        //string recieved = sr.ReadLine();
        return "";

    }

Voy a tener el código del servidor en mi servidor (winserver 2008R2) pero actualmente lo pruebo en PC normales, ¿qué estoy haciendo mal? Quiero enviar algún paquete http desde un sistema aleatorio (con una IP aleatoria) t, o mi servidor (que sé su IP), ¿qué debo hacer? ¿Es posible con tcp / ip o debería hacer otra cosa? ¿Está relacionado con la IP estática? ¿Debería tener una IP estática? mi servidor web tiene una IP estática pero mis clientes no, ¿es un problema? Creo que tengo algún problema para definir puertos e IP, ¿cómo debo configurarlos? mi servidor tiene una IP específica, pero no sé la IP de mis clientes, ¿podría explicarme paso a paso? Gracia

Respuestas a la pregunta(1)

Su respuesta a la pregunta