c#从服务器Ping TCP客户端

本文关键字:TCP 客户端 Ping 服务器 | 更新日期: 2023-09-27 18:24:57

如何从服务器ping TcpClient以查看其响应时间?我有一个我已经创建的TCPServer,还有一个我也创建过的TCPClientManager。这只是在客户端连接时向List添加一个具有.NET TcpClient属性的新Client。如何获取TcpClient的地址,以便使用.NET Ping对其进行ping?

public long PingClient(Client client)
{
    long pingTime = 0;
    Ping pingSender = new Ping();
    // The class Client has a property tcpClient of type TcpClient
    IPAddress address = IPAddress.Parse(Client.tcpClient...???);
    PingReply reply = pingSender.Send(address);
    if (reply.Status == IPStatus.Success)
    {
        pingTime = reply.RoundtripTime;
    }
    return pingTime;
}

c#从服务器Ping TCP客户端

如果我正确理解你的问题,你想要连接的TcpClientIPAddress,这可以通过访问底层套接字(通过Client属性公开)并使用它的EndPoint属性来实现。

您必须将其强制转换为IPEndPoint才能正确访问它。

在您的情况下,只需使用((IPEndPoint)client.Client.RemoteEndPoint).Address,它将返回一个IPAddress

因此,您必须将您的示例从更改为

IPAddress address = IPAddress.Parse(Client.tcpClient...???);

至:

IPAddress address = ((IPEndPoint)client.Client.RemoteEndPoint).Address;