如何从 C# 检查计算机是否响应
检查计算机是否处于活动状态并响应(例如在 ping/NetBios 中)的最简单方法是什么? 我想要一种可以限制时间的确定性方法。
一种解决方案是在单独的线程中简单地访问共享 (File.GetDirectories(@"\compname")),如果花费太长时间,则终止该线程。
What is the easiest way to check if a computer is alive and responding (say in ping/NetBios)?
I'd like a deterministic method that I can time-limit.
One solution is simple access the share (File.GetDirectories(@"\compname")) in a separate thread, and kill the thread if it takes too long.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
简单的! 使用 System.Net.NetworkInformation 命名空间的 ping 工具!
http://msdn.microsoft.com /en-us/library/system.net.networkinformation.ping.aspx
Easy! Use
System.Net.NetworkInformation
namespace's ping facility!http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping.aspx
要检查已知服务器上的特定 TCP 端口 (
myPort
),请使用以下代码片段。 您可以捕获 System.Net.Sockets.SocketException 异常来指示不可用的端口。此外,专门的检查可以尝试套接字上超时的 IO。
To check a specific TCP port (
myPort
) on a known server, use the following snippet. You can catch theSystem.Net.Sockets.SocketException
exception to indicate non available port.Further, specialized, checks can try IO with timeouts on the socket.
只要您想检查自己子网内的计算机,您就可以使用 ARP 进行检查。 下面是一个示例:
有关详细信息,请参阅 Pinvoke.net。
As long as you want to check a computer within the own subnet you could check it using ARP. Here's an example:
See Pinvoke.net for more information.