服务器端接收数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
using System.Net.Sockets; // !! Import using System.Net; using System.Text; using System; namespace SocketServer { class MainClass { public static void Main (string[] args) { // 1. 创建服务器端Socket实例 Socket server_socket = new Socket (AddressFamily.InterNetwork, // 局域网 SocketType.Stream, // 类型:流套接字 ProtocolType.Tcp); // 协议类型:TCP // 2. 规定开放哪些端口 IPEndPoint ipEndPoint = new IPEndPoint (IPAddress.Any, 2222); // 3. 绑定开放的端口 server_socket.Bind (ipEndPoint); // 4. 开始监听 server_socket.Listen (40); // 40接收数据的上限 while (true){ // 接到了客户端的数据 // 4.1 实例化客户端Socket Socket client_socket = server_socket.Accept (); // 4.2 拼接客户端发来的数据 string receive_str = ""; while (true){ // 每次接收的字节数组 (二进制流) byte[] data = new byte[255]; // 255每次接收固定长度 // 从客户端接收数据 client_socket.Receive (data); // 转换为字符串类型 // !! 要引用System.Text receive_str += Encoding.UTF8.GetString (data); // 判断是否结束 if (receive_str.Contains ("\r\n")){ break; } } Console.WriteLine (receive_str); // 关闭当前客户Socket链接 client_socket.Close (); } } } } |
客户端发送数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
using System; using System.Net.Sockets; // !! Import using System.Net; using System.Text; namespace Socket_Client { class MainClass { public static void Main (string[] args) { // 1. 创建Socket实例 Socket client_socket = new Socket (AddressFamily.InterNetwork, // 局域网 SocketType.Stream, // 类型:流套接字 ProtocolType.Tcp); // 协议类型:TCP // 2. 指定服务器端IP地址, 字符串转换为IP地址类 // !! 要引入命名空间 System.Net IPAddress ipAddr = IPAddress.Parse ("172.17.32.59"); //指定并转换 // 3. 创建IP实体类对象 IP地址+端口号 IPEndPoint ipEndPoint = new IPEndPoint (ipAddr, 2222); // 4. 连接服务器端 client_socket.Connect (ipEndPoint); // 5. 发送数据 // 5.1 编辑要发送的数据流 string msg = "你好,Unity! \r\n"; // !! 要引入命名空间 System.Text byte[] data = Encoding.UTF8.GetBytes (msg); // 5.2 发送 client_socket.Send (data); } } } |
- 本文固定链接: http://www.u3d8.com/?p=163
- 转载请注明: 网虫虫 在 u3d8.com 发表过
6666