[英]c# Ping a TCP Client from the server
如何从服务器ping通TcpClient
以查看其响应时间? 我有一个TCPServer
,我用我创建的TCPClientManager
创建。 只要客户端连接,这只是将一个带有.NET TcpClient
属性的新Client
添加到List
。 如何获取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
才能正确访问它。
在您的情况下,只需使用((IPEndPoint)client.Client.RemoteEndPoint).Address
将返回IPAddress
。
所以你必须改变你的例子:
IPAddress address = IPAddress.Parse(Client.tcpClient...???);
至:
IPAddress address = ((IPEndPoint)client.Client.RemoteEndPoint).Address;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.