【问题标题】:c# Ping a TCP Client from the serverc# 从服务器 Ping 一个 TCP 客户端
【发布时间】:2016-03-02 17:44:42
【问题描述】:

如何从服务器 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;
}

【问题讨论】:

标签: c# tcp


【解决方案1】:

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

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

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

所以你必须改变你的例子:

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

到:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 2019-02-26
    • 1970-01-01
    相关资源
    最近更新 更多