如何判断TCP通信中服务器意外关闭能用C#写一个例子吗
判断TCP通信中服务器意外关闭可以通过捕获SocketException异常来实现。当服务器关闭时,客户端会收到一个“连接被强制关闭”的错误信息,此时可以捕获该异常并进行相应的处理。
以下是一个使用C#编写的示例代码:
using System;
using System.Net;
using System.Net.Sockets;
class Program
{
static void Main(string[] args)
{
try
{
// 创建TCP客户端
TcpClient client = new TcpClient();
// 连接服务器
client.Connect(IPAddress.Parse("127.0.0.1"), 8888);
// 发送数据
string message = "Hello, server!";
byte[] data = System.Text.Encoding.UTF8.GetBytes(message);
client.GetStream().Write(data, 0, data.Length);
// 接收数据
byte[] buffer = new byte[1024];
int length = client.GetStream().Read(buffer, 0, buffer.Length);
string response = System.Text.Encoding.UTF8.GetString(buffer, 0, length);
Console.WriteLine("Server response: " + response);
// 关闭连接
client.Close();
}
catch (SocketException ex)
{
Console.WriteLine("Server closed unexpectedly: " + ex.Message);
}
}
}
在上面的代码中,如果服务器意外关闭,客户端会捕获SocketException异常并输出错误信息。可以根据实际情况进行相应的处理,比如重新连接服务器等
原文地址: https://www.cveoy.top/t/topic/eGJE 著作权归作者所有。请勿转载和采集!