如何扫描网内已运行的机器IP? ( 积分: 100 )

  • 主题发起人 主题发起人 泥巴caption
  • 开始时间 开始时间

泥巴caption

Unregistered / Unconfirmed
GUEST, unregistred user!
用SOCKET做的 client 和server。 client分别放在不同的机器上,每天不定时的启动。如何在打开server后显示已经有多少个 client已经运行了呢?如何把已经运行的client的IP显示在server上呢?
我试过以前提到的实现类似PING 的功能,把整个网段都扫描一遍,好象很慢。大家还有什么好的解决办法吗?
 
用SOCKET做的 client 和server。 client分别放在不同的机器上,每天不定时的启动。如何在打开server后显示已经有多少个 client已经运行了呢?如何把已经运行的client的IP显示在server上呢?
我试过以前提到的实现类似PING 的功能,把整个网段都扫描一遍,好象很慢。大家还有什么好的解决办法吗?
 
我晕
每一端时间cilent向server发一个消息
每个数据都有发送过来的ip和port
每次更新显示一下就可以了
 
简单的就用ping
 
如果是在一个网段可以考虑用udp广播client接收到广播的消息然后向服务端发送在线消息
如果只是想知道有多少台机器运行了
就ping
多用几个线程
 
用多线程的ping就行了,在Delphi中运行外部程序ping
 
最快的方法是用arp。
 
建议客户端运行或关闭时,向服务器发送信息,这样就知道有多少台在运行。
 
我已经用ICS的PING试了一下,即使是一个段的从1到255都扫描一遍也要很长时间啊,而且客户端是每次起机的时候就运行的,现在需要的是服务端运行的时候能扫描到已运行的客户端。
 
如果不过路由器那Server启动时向网内发广播,client端收到后把自身的IP发送给服务端
 
优化大师(Wom)有个群Ping功能,你可以设置192.168.0.1--192.168.0.255之间所有的机器只要是运行的,都可以探测到;
而且在Ping通后,还检测对方机器上的所有共享文件;
速度不是太慢,也就10秒种就扫描完整个网段;
不知道优化大师的作者鲁锦用的什么方法?
 
我晕
每一端时间cilent向server发一个消息
每个数据都有发送过来的ip和port
每次更新显示一下就可以了
 
在client端定时向那个server端发送连接标识就行了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部