C#简单服务器只用于ping

时间:2013-10-11 15:19:04

标签: c# sockets tcp

我正在用C#编写一个基本上用于一个简单目的的程序。它应该像客户端ping服务器一样。此服务器程序仅用于通过返回ping请求来确定计算机是否仍处于打开状态。除了响应ping请求之外,我不需要程序将任何信息发送回客户端。简单的ping响应足以确认运行应用程序的计算机仍在运行。

我目前正在通过使用TCP服务器/客户端来解决这个问题。但是,似乎我无法连接到TCP服务器。这是因为服务器需要打开端口80才能被ping通吗?我的TCP服务器代码基于我找到的这个帖子:

Send/Receive Bytes using TCP Sockets over internet (possibly using static IP)

该方法是否存在固有错误?或者是否有一种更简单的方法来创建这个只需要接受并响应ping请求的简单服务器?

2 个答案:

答案 0 :(得分:3)

你在客户端做什么? 在控制台上调用ping?这不起作用,因为ping不基于TCP。 如果您正在使用此代码,您的客户端将必须连接TCP端口9999以获得任何响应 - >所以你还需要在客户端开发一个特殊的ping应用程序。客户端也无法发送任何内容(如ping),因为服务器只接受客户端,发送某事。然后关闭连接。

默认的ping机制(基于ICMP)应该已经可以通过您的操作系统使用,并且足以满足您的使用需求。它不存在吗? 这可能与某些以太网设置或防火墙有关。

答案 1 :(得分:0)

您可以在特定端口上的服务器上打开套接字,然后尝试使用您的客户端连接到该套接字,就像您发布的链接一样。