Сокети

Клієнт

            //---create a TCPClient object at the IP and port no.---

            TcpClient client = new TcpClient(SERVER_IP, PORT_NO);

            NetworkStream nwStream = client.GetStream();

            byte[] bytesToSend = Encoding.UTF8.GetBytes();

            //---send the text---

            Console.WriteLine("Sending: ");

            nwStream.Write(bytesToSend, 0, bytesToSend.Length);

            ////---read back the text---

            //byte[] bytesToRead = new byte[client.ReceiveBufferSize];

            //int bytesRead = nwStream.Read(bytesToRead, 0, client.ReceiveBufferSize);

            //Console.WriteLine("Received : " + Encoding.UTF8.GetString(bytesToRead, 0, bytesRead));

            nwStream.Close();

            client.Close();





Сервер (має бути підключеним до інтернету напряму, без роутера)

        private static void Server()

        {

            //---listen at the specified IP and port no.---

            IPAddress localAdd = IPAddress.Parse(SERVER_IP);

            TcpListener listener = new TcpListener(localAdd, PORT_NO);

            Console.WriteLine("Listening... " + DateTime.Now);

            listener.Start();

            //---incoming client connected---

            TcpClient client = listener.AcceptTcpClient();

            //---get the incoming data through a network stream---

            NetworkStream nwStream = client.GetStream();

            byte[] buffer = new byte[client.ReceiveBufferSize];

            //---read incoming stream---

            int bytesRead = nwStream.Read(buffer, 0, client.ReceiveBufferSize);

            //---convert the data received into a string---

            string dataReceived = Encoding.UTF8.GetString(buffer, 0, bytesRead);

            Console.WriteLine("Received: " + dataReceived);

            //IP відпавника

            string IP = string.Empty;

            Console.WriteLine(IP = client.Client.RemoteEndPoint.ToString());

            client.Close();

            listener.Stop();

        }