c#从服务器Ping TCP客户端
如何从服务器pingc#从服务器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();
TcpClient
以查看其响应时间?我有一个TCPServer
,它是我用一个TCPClientManager
创建的。这只需在客户端连接时向列表中添加一个新的客户端
,该客户端带有.NETTcpClient
属性。如何获取TcpClient
的地址,以便使用.NETping
对其进行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;