套接字编程
套接字的工作流程

服务端代码:这里是阻塞的方式
IPAddress ipHost = Dns.GetHostEntry(Dns.GetHostName()).AddressList.First(x => x.AddressFamily == AddressFamily.InterNetwork); IPEndPoint ipedp = new IPEndPoint(ipHost, 11000); Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { sock.Bind(ipedp); Console.WriteLine("Server listen"); sock.Listen(500); while (true) { Socket handle = sock.Accept(); string data = null; while (true) { byte[] bt = new byte[1024]; int byteRes = handle.Receive(bt); data += Encoding.ASCII.GetString(bt, 0, byteRes); if(data.IndexOf("end")>0) { break; } } Console.WriteLine("Revice"+data); string answer = "Thank You"; byte[] msg = Encoding.ASCII.GetBytes(answer); handle.Send(msg); handle.Shutdown(SocketShutdown.Both); handle.Close(); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); }
客户端:
byte[] bytes = new byte[512]; IPAddress ipHost = Dns.GetHostEntry(Dns.GetHostName()).AddressList.First(x => x.AddressFamily == AddressFamily.InterNetwork); IPEndPoint ipedp = new IPEndPoint(ipHost, 11000); Socket sockS = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Console.WriteLine("Connet to Server"); sockS.Connect(ipedp); string msg = "test socket connection snhabkdbkdislkd end"; byte[] msgb = Encoding.ASCII.GetBytes(msg); int bytsend = sockS.Send(msgb); int bytRes = sockS.Receive(bytes); Console.WriteLine("server Asw:" + Encoding.ASCII.GetString(bytes, 0, bytRes));

浙公网安备 33010602011771号