using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; public class TcpServer { public static void Main() { IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 20); Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); newsock.Bind(ipep); newsock.Listen(10); while(true) { Socket client = newsock.Accept(); IPEndPoint clientep = (IPEndPoint) client.RemoteEndPoint; Console.WriteLine("Client End Point = " + clientep); // create a new thread and then receive message. TcpListener listener = new TcpListener(client); Thread thread = new Thread(new ThreadStart(listener.run)); thread.Start(); } // newsock.Close(); } } public class TcpListener { Socket socket; public TcpListener(Socket s) { socket = s; } public void run() { while (true) { byte[] data = new byte[1024]; int recv = socket.Receive(data); if (recv == 0) break; // Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); Console.WriteLine(Encoding.UTF8.GetString(data, 0, recv)); } socket.Close(); } }