servidor cliente tcp / ip não funciona na internet

Vou configurar um pequeno servidor cliente / servidor no modo TCP / IP, uso o VS2010, C # para desenvolver meus aplicativos, pesquisei bastante e encontrei alguns códigos-fonte, mas nenhum deles funciona na Internet, Posso obter algumas respostas em meu próprio sistema local, ou seja, eu executo meu servidor, escuto meu próprio host local (127.0.0.1) e depois envio alguns dados (por exemplo, usando telnet), funciona bem, mas quando faço o mesmo pela Internet Eu não recebo nada! Quero usar a porta 80, como desejo enviar / receber dados http, testei vários códigos-fonte, eis o último código que usei (e funciona no host local com telnet)

// código do 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 dados (cliente), é claro que não usei esse código, cert

        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 "";

    }

Vou ter o código do servidor no meu servidor (winserver 2008R2), mas atualmente testá-lo em computadores normais, o que estou fazendo de errado? Desejo enviar algum pacote http de um sistema aleatório (com um IP aleatório) para o meu servidor (que eu conheço seu IP), o que devo fazer? é possível com TCP / IP ou devo fazer outra coisa? está relacionado ao IP estático? eu certamente deveria ter IP estático? meu servidor web tem um IP estático, mas meus clientes não, isso é um problema? Acho que tenho algum problema na definição de portas e IPs, como devo configurá-los? meu servidor tem um IP específico, mas eu não sei o IP dos meus clientes, você poderia me explicar passo a passo? obrigad

questionAnswers(1)

yourAnswerToTheQuestion