我需要轮询一台运行某些专有软件的服务器,以确定该服务是否正在运行。使用 wireshark,我已经能够缩小其使用的 TCP 端口,但似乎流量已加密。
就我而言,可以肯定的是,如果服务器正在接受连接(即 telnet serverName 1234),则服务已启动并且一切正常。换句话说,我不需要做任何实际的数据交换,只需打开一个连接然后安全地关闭它。
我想知道如何使用 C# 和套接字模拟它。我的网络编程基本上以 WebClient 结束,所以非常感谢这里的任何帮助。
最佳答案
过程其实很简单。
using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
try
{
socket.Connect(host, port);
}
catch (SocketException ex)
{
if (ex.SocketErrorCode == SocketError.ConnectionRefused)
{
// ...
}
}
}
关于c# - 确定服务器是否正在监听给定端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2836674/