标签:write remote ipad async syn gif epc ram toc
最近开始学习C#的Socket 记录一下。
最简单的服务端
1 class Program 2 { 3 /* 4 1、实例化Socket对象 5 2、绑定端口和Ip(Bind) 6 3、接听客户端连接(Listen) 7 4、调用Accept取得客户端Socket 8 5、Send 和 Receive 收发数据 9 6、Close关闭Socket 10 */ 11 static void Main(string[] args) 12 { 13 Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 14 IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888); 15 server.Bind(endPoint); 16 server.Listen(10); 17 server.BeginAccept(new AsyncCallback(AccepCallback), server); 18 Console.ReadKey(); 19 20 } 21 22 private static void AccepCallback(IAsyncResult ar) 23 { 24 Socket server = (Socket)ar.AsyncState; 25 Socket client = server.EndAccept(ar); 26 Console.WriteLine("收到{0}连接", client.RemoteEndPoint.ToString()); 27 byte[] data = Encoding.UTF8.GetBytes("客户端连接成功"); 28 int len = data.Length; 29 client.Send(BitConverter.GetBytes(len)); 30 client.Send(data); 31 server.BeginAccept(new AsyncCallback(AccepCallback), server); 32 33 } 34 }
最简单的客户端
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 6 try 7 { 8 client.Connect("127.0.0.1", 8888); 9 Console.WriteLine("连接成功"); 10 byte[] buffer = new byte[4]; 11 client.Receive(buffer); 12 int len = BitConverter.ToInt32(buffer, 0); 13 buffer = new byte[len]; 14 client.Receive(buffer); 15 string msg = Encoding.UTF8.GetString(buffer); 16 Console.WriteLine(msg); 17 } 18 catch (Exception e) 19 { 20 21 Console.WriteLine(e.Message); 22 } 23 Console.ReadKey(); 24 } 25 }
标签:write remote ipad async syn gif epc ram toc
原文地址:https://www.cnblogs.com/PandaHome/p/9114149.html