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;
}
如果我正确理解你的问题,你想要连接的TcpClient
的IPAddress
,这可以通过访问底层套接字(通过Client
属性公开)并使用它的EndPoint
属性来实现。
您必须将其强制转换为IPEndPoint
才能正确访问它。
在您的情况下,只需使用((IPEndPoint)client.Client.RemoteEndPoint).Address
,它将返回一个IPAddress
。
因此,您必须将您的示例从更改为
IPAddress address = IPAddress.Parse(Client.tcpClient...???);
至:
IPAddress address = ((IPEndPoint)client.Client.RemoteEndPoint).Address;