C# Socket

发布于:2024-06-30 ⋅ 阅读:(64) ⋅ 点赞:(0)


C# 中的 Socket 是一种用于网络通信的底层编程接口,它允许你发送和接收数据。在 C# 中, Socket 类是 System.Net.Sockets 命名空间下的一部分,提供了创建客户端和服务器端应用程序的功能。

以下是一些基本的步骤和概念,用于使用 C# 中的 Socket 进行网络编程:

Socket

命名空间:

使用 using System.Net.Sockets; 来访问 Socket 类。

创建 Socket

使用 Socket 类的构造函数创建一个新的 Socket 实例。你需要指定协议族(通常是 AddressFamily.InterNetwork 表示 IPv4),套接字类型(如 SocketType.Stream 表示 TCP),以及协议类型(如 ProtocolType.Tcp)。

Socket socket = new Socket(
	AddressFamily.InterNetwork, 
	SocketType.Stream, 
	ProtocolType.Tcp
);

连接到服务器(客户端):

使用 Connect 方法连接到服务器的 IP 地址和端口。

socket.Connect(new IPEndPoint(IPAddress.Parse("192.168.1.100"), 12345));

绑定和监听(服务器端):

使用 Bind 方法将套接字绑定到特定的端点(IP 地址和端口),然后使用 Listen 方法开始监听传入连接。

socket.Bind(new IPEndPoint(IPAddress.Any, 12345));
socket.Listen(10); // 可以同时接受10个客户端连接

接受连接(服务器端):

使用 Accept 方法接受客户端的连接请求,这将返回一个新的 Socket 对象,用于与该客户端通信。

Socket clientSocket = socket.Accept();

发送和接收数据:

使用 SendReceive 方法来发送和接收数据。数据通常以字节数组的形式传输。

byte[] data = Encoding.ASCII.GetBytes("Hello, world!");
socket.Send(data);

byte[] buffer = new byte[1024];
int bytesRead = socket.Receive(buffer);
string receivedData = Encoding.ASCII.GetString(buffer, 0, bytesRead);

关闭 Socket

使用 Close 方法关闭套接字连接。

socket.Close();

注意

实际的网络编程可能需要考虑更多的错误处理和多线程问题。以上只是一个简单的示例,用于展示 Socket 类的基本用法。在实际应用中,你可能需要使用 TcpClient 和 TcpListener 类,它们提供了更高级的抽象和简化的 API,使得网络编程更加容易。


网站公告

今日签到

点亮在社区的每一天
去签到