c#从服务器Ping TCP客户端

c#从服务器Ping TCP客户端,c#,tcp,C#,Tcp,如何从服务器pingTcpClient以查看其响应时间?我有一个TCPServer,它是我用一个TCPClientManager创建的。这只需在客户端连接时向列表中添加一个新的客户端,该客户端带有.NETTcpClient属性。如何获取TcpClient的地址,以便使用.NETping对其进行ping操作 public long PingClient(Client client) { long pingTime = 0; Ping pingSender = new Ping();

如何从服务器ping
TcpClient
以查看其响应时间?我有一个
TCPServer
,它是我用一个
TCPClientManager
创建的。这只需在客户端连接时向
列表中添加一个新的
客户端
,该客户端带有.NET
TcpClient
属性。如何获取
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;
}

如果我正确理解了您的问题,您需要连接的
TcpClient
IPAddress
,这可以通过访问底层套接字(通过
Client
属性公开)并使用其
端点
属性来实现

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

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

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

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

可能重复的
IPAddress address = ((IPEndPoint)client.Client.RemoteEndPoint).Address;