检查客户端是否有开放端口,以及正确转发的最佳方法是什么?
该应用目前的工作方式如下:
目标是在服务器上保存IP +端口信息,以便能够将其提供给其他客户端。我可以尝试从服务器到客户端打开Socket
并查看它是否失败,但有更简单(更快)的方法吗?
例如,此网站执行类似的操作:http://www.canyouseeme.org/
答案 0 :(得分:1)
不,没有。
要检查是否可以建立连接,您需要尝试建立连接:)使用Socket
是一种合理的方法。
通过检查计算机是否具有公共IP地址或本地IP地址,您可以跳过某些客户端的此步骤。仍然存在公司防火墙等可能性,因此尝试打开连接是最安全的方法。
使用ICMP回送请求(ping)不是一种选择,因为ICMP是与TCP(或UDP)不同的协议,没有端口号的概念。 Ping可用于确定IP地址是否可访问,但这对您的案例没有任何附加价值。