c# socket通信客户端关闭连接代码咋写
时间: 2024-10-27 20:09:02 浏览: 29
在 C# 中,使用 Socket 进行网络通信时,如果你想要关闭客户端连接,通常会调用 `Socket.Shutdown(SocketShutdown.Send)` 来发送一个关闭连接的请求,然后用 `Socket.Close()` 来彻底关闭套接字。以下是基本的客户端关闭连接的代码示例:
```csharp
using System.Net;
using System.Net.Sockets;
// 创建 Socket 对象
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 连接到服务器...
try
{
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("服务器IP地址"), 端口号);
clientSocket.Connect(serverEndPoint);
// 发送数据...
byte[] data = Encoding.UTF8.GetBytes("要发送的数据");
clientSocket.Send(data);
// 关闭连接 - 首先发送 FIN 报文,告诉服务器我们不再发送数据
clientSocket.Shutdown(SocketShutdown.Send);
// 等待服务器响应或超时后关闭接收
clientSocket.ReceiveTimeout = 1000; // 设置接收超时时间
if (clientSocket.Receive(data) > 0)
Console.WriteLine("服务器回复: " + Encoding.UTF8.GetString(data));
// 完全关闭连接
clientSocket.Close();
}
catch (Exception ex)
{
Console.WriteLine("连接关闭异常: " + ex.Message);
}
finally
{
// 确保资源释放
clientSocket.Dispose();
}
```
阅读全文