我会详细讲解“C#实现套接字发送接收数据”的完整攻略。
简介
在 C# 语言中,实现套接字(Socket)发送和接收数据比较简单,主要是通过 System.Net 命名空间中的 Socket 类完成,本文将通过示例演示如何使用 Socket 在 C# 中发送和接收数据。
准备工作
首先,要创建一个 C# 控制台应用程序,然后在解决方案资源管理器中,右键单击项目,选择“管理 NuGet 程序包”,在“NuGet 包管理器”中,搜索“System.Net.Sockets”,安装该程序包。
还需要引用 System.Net 命名空间:
using System.Net;
using System.Net.Sockets;
使用 Socket 类发送数据
通过 Socket 类的 Send 方法,可以很容易地实现发送数据的操作。下面是一个简单的示例:
//创建 Socket
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//连接到目标主机
IPAddress remoteIP = IPAddress.Parse("192.168.0.1");
int remotePort = 1234;
socket.Connect(remoteIP, remotePort);
//要发送的数据
byte[] sendData = Encoding.ASCII.GetBytes("Hello World");
//发送数据
socket.Send(sendData);
//关闭 Socket
socket.Close();
上面这段代码中,首先创建了一个 Socket 对象,然后通过 Connect 方法连接到目标主机,然后将要发送的数据转换成字节数组,并通过 Send 方法发送出去,最后通过 Close 方法关闭 Socket。
使用 Socket 类接收数据
通过 Socket 类的 Receive 方法,可以很容易地实现接收数据的操作。下面是一个简单的示例:
//创建 Socket
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//绑定 IP 和端口
IPAddress localIP = IPAddress.Parse("192.168.0.2");
int localPort = 1234;
socket.Bind(new IPEndPoint(localIP, localPort));
//开始侦听
socket.Listen(10);
//等待客户端连接
Socket clientSocket = socket.Accept();
//接收数据
byte[] recData = new byte[1024];
int length = clientSocket.Receive(recData);
//将接收到的数据转换成字符串,并输出到控制台
string recStr = Encoding.ASCII.GetString(recData, 0, length);
Console.WriteLine("Received: " + recStr);
//关闭 Socket
clientSocket.Close();
socket.Close();
上面这段代码中,首先创建了一个 Socket 对象,并通过 Bind 方法绑定了本地 IP 和端口,然后通过 Listen 方法开始侦听,等待客户端连接。当有客户端连接时,通过 Accept 方法创建了一个新的 Socket 对象,并将其赋值给 clientSocket 变量。然后通过 clientSocket 的 Receive 方法接收客户端发送的数据,将其转换成字符串,并输出到控制台,最后通过 Close 方法关闭 clientSocket 和 socket。
总结
通过使用 Socket 类,实现 C# 中的套接字发送和接收数据并不复杂。在发送数据时,创建 Socket 对象,连接目标主机,并通过 Send 方法发送数据即可;在接收数据时,创建 Socket 对象,并通过 Bind 方法绑定 IP 和端口号,并通过 Listen 方法开始侦听,等待客户端连接,在接收到客户端连接后,通过 Accept 方法创建一个新的 Socket 对象,通过 Receive 方法接收客户端发送的数据即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现套接字发送接收数据 - Python技术站