C# Socket
时间: 2023-07-12 22:04:06 浏览: 130
C# 中的 Socket 类是用于在网络上进行通信的核心类。它提供了一种通用的方法来与其他计算机上的应用程序进行通信。使用 Socket 类,您可以编写客户端和服务器应用程序,这些应用程序可以在本地计算机或 Internet 上运行。
以下是使用 C# Socket 的基本步骤:
1. 创建一个 Socket 实例。可以通过调用 Socket 类的构造函数来实现。
2. 定义一个 IP 地址和端口号,以便连接到远程主机。可以使用 IPAddress 类来表示 IP 地址,使用 IPEndPoint 类来表示主机和端口号的组合。
3. 通过调用 Socket 实例的 Connect() 方法来连接到远程主机。
4. 使用 Socket 实例的 Send() 方法将数据发送到远程主机。
5. 使用 Socket 实例的 Receive() 方法从远程主机接收数据。
6. 在完成通信后,使用 Socket 实例的 Shutdown() 方法关闭连接。
以下是一个基本的使用 C# Socket 的客户端代码示例:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class Client {
public static void Main() {
// 创建一个 Socket 实例
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 定义远程主机的 IP 地址和端口号
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
int port = 12345;
IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);
// 连接到远程主机
clientSocket.Connect(remoteEP);
// 发送数据到远程主机
string message = "Hello, world!";
byte[] data = Encoding.ASCII.GetBytes(message);
clientSocket.Send(data);
// 从远程主机接收数据
byte[] buffer = new byte[1024];
int bytesReceived = clientSocket.Receive(buffer);
string response = Encoding.ASCII.GetString(buffer, 0, bytesReceived);
Console.WriteLine("Received: {0}", response);
// 关闭连接
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
}
```
以上代码创建了一个客户端 Socket 实例,并将其连接到本地主机上的端口号为 12345 的服务器。然后,它发送一条消息到服务器,并从服务器接收响应。最后,它关闭连接。
注意,在实际应用程序中,您可能需要处理一些异常情况,例如连接失败或数据接收超时等。
阅读全文