服务器端: using System; using System.Net; using System.Net.Sockets; using System.Text; public class SynchronousSocketClient ... { public static void StartClient() ...{ // Data buffer for incoming data. byte[] bytes = new byte[1024]; // Connect to a remote device. try ...{ // 使用 8088端口 在本机上 IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); IPAddress ipAddress = ipHostInfo.AddressList[0]; IPEndPoint remoteEP = new IPEndPoint(ipAddress, 8088); Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 建立TCP连接. Catch any errors. try ...{ sender.Connect(remoteEP); Console.WriteLine("Socket connected to {0}", sender.RemoteEndPoint.ToString()); byte[] msg = Encoding.ASCII.GetBytes("This is a test<EOF>"); int bytesSent = sender.Send(msg); int bytesRec = sender.Receive(bytes); Console.WriteLine("Echoed test = {0}", Encoding.ASCII.GetString(bytes, 0, bytesRec)); sender.Shutdown(SocketShutdown.Both); sender.Close(); } catch (ArgumentNullException ane) ...{ Console.WriteLine("ArgumentNullException : {0}", ane.ToString()); } catch (SocketException se) ...{ Console.WriteLine("SocketException : {0}", se.ToString()); } catch (Exception e) ...{ Console.WriteLine("Unexpected exception : {0}", e.ToString()); } } catch (Exception e) ...{ Console.WriteLine(e.ToString()); } } public static int Main(String[] args) ...{ StartClient(); return 0; }} 客户端: using System; using System.Net; using System.Net.Sockets; using System.Text; public class SynchronousSocketListener ... { public static string data = null; public static void StartListening() ...{ byte[] bytes = new Byte[1024]; IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); IPAddress ipAddress = ipHostInfo.AddressList[0]; IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 8088); Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try ...{ listener.Bind(localEndPoint); listener.Listen(10); while (true) ...{ Console.WriteLine("Waiting for a connection..."); Socket handler = listener.Accept(); data = null; while (true) ...{ bytes = new byte[1024]; int bytesRec = handler.Receive(bytes); data += Encoding.ASCII.GetString(bytes, 0, bytesRec); if (data.IndexOf("<EOF>") > -1) ...{ break; } } Console.WriteLine("Text received : {0}", data); byte[] msg = Encoding.ASCII.GetBytes(data); handler.Send(msg); handler.Shutdown(SocketShutdown.Both); handler.Close(); } } catch (Exception e) ...{ Console.WriteLine(e.ToString()); } Console.WriteLine(" Press ENTER to continue..."); Console.Read(); } public static int Main(String[] args) ...{ StartListening(); return 0; }}