C#通过Socket实现客户端和服务器端通信的简单例子
下面的代码演示了如果创建一个用于在客户端和服务端交换信息的代码
Socket Server 服务器端
using System; using System.Collections.Generic; using System.Text; using System.Net.Sockets; using System.Net; namespace ConsoleApplication1 { Class Program { static void Main (String[] args) { // 1. to create a socket Socket sListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); / / 2. Fill IP IPAddress IP = IPAddress.Parse ("127.0.0.1"); IPEndPoint IPE = new IPEndPoint (IP, 4321); / / 3. binding sListen.Bind (IPE); / / 4. Monitoring sListen.Listen (2); / / 5. loop to accept client connection requests while (true) { Socket clientSocket; try { clientSocket = sListen.Accept(); } catch { throw; } // send data to the client clientSocket.Send (Encoding.Unicode.GetBytes ("You there?!!!!")); } } } }
socket client 客户端
using System; using System.Collections.Generic; using System.Text; using System.Net.Sockets; using System.Net; namespace ConsoleApplication2 { Class Program { static void Main (String[] args) { // 1.create socket Socket S = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 2. complete remote IP IPAddress IP = IPAddress.Parse ("127.0.0.1"); IPEndPoint IPE = new IPEndPoint (IP, 4321); // 3. connect to the server Console.WriteLine("Start to connect to server ...."); s.Connect (IPE); // 4. to receive data byte[] buffer = new byte[1024]; s.Receive (buffer, buffer.Length, SocketFlags.None); var Msg = Encoding.Unicode.GetString (buffer); Console.WriteLine ("received message: (0)", Msg); Console.ReadKey (); } } }