【发布时间】:2013-10-11 23:33:26
【问题描述】:
我正在用 C# 编写一个程序,它基本上服务于一个简单的目的。它应该充当客户端 ping 的服务器。此服务器程序仅用于通过返回 ping 请求来确定计算机是否仍在运行。除了响应 ping 请求之外,我不需要程序将任何信息发送回客户端。简单的 ping 响应足以确认运行应用程序的计算机仍在运行。
我目前正在通过使用 TCP 服务器/客户端来解决此问题。但是,我似乎无法连接到 TCP 服务器。这是因为服务器需要打开端口 80 才能被 ping 通吗?我的 TCP 服务器代码基于我发现的这个线程:
Send/Receive Bytes using TCP Sockets over internet (possibly using static IP)
这种方法有什么固有的错误吗?或者有没有更简单的方法来创建这个只需要接受和响应 ping 请求的简单服务器?
【问题讨论】:
-
您不需要服务器来响应 ping 请求。
-
我认为计算机需要主动监听 ping 请求才能响应?因为如果我只是简单地 ping 我的计算机的 IP 地址,我没有得到任何响应并且 100% 的数据包数据丢失。是因为防火墙设置或端口吗?
-
我认为可能是防火墙设置不允许 ping.. 但是您甚至不能 ping 自己计算机的 IP 地址(例如 127.0.0.1)?
-
你说得对,如果我在同一个系统上 ping 我自己的电脑,我可以。但我似乎无法通过 Internet 或从另一台计算机通过本地网络 ping 它。
-
@Generalkidd - 绝对是防火墙。请参阅here 了解如何使 ping 能够通过。