NMUDP的问题,如何快速知道是否可以正常通讯?(在线恭候) (50分)

M

mr.hl

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个点对点的局域网聊天工具,用的是NMUDP组件,在我已添加的计算机名里面,
如何可以快速知道它是否可以接受我的数据(即是否打开本软件,如果找不到接受数据的
主机,怎样才能短时间内知道?),以及类似QQ的上线,在线,离线状态如何实现?
我的QQ:58692457。小弟就这么点money了,赐教!!
 
程序一启动就发送一广播报文,其它主机的程序收到后将其显示出来。
 
to zw84611:
可是如果对方没打开本软件接受数据的话,我发送的数据会找不到主机,要等好长的
时间发送数据方才能知道啊。这样快一点知道呢?还有:怎样“发送一广播报文”?
 
“如果对方没打开本软件接受数据”那说明对方没有使用这个程序,自然无须向它发送数据。
关于广播,参见这里:http://www.playicq.com/dispdoc.php?t=27&id=2255
 
to zw84611:

但是在你发送消息之前你并不知道对方是否打开本软件了啊!!


我说的不是可不可以向它发送数据,我是想在最短时间内知道是否对方可以接受数据:)
还有就象windows优化大师的系统安全设置-》附加工具-》群集ping是如何实现的?用ping
吗?如何用啊?
 
1.
程序一启动就发送一广播报文,其它主机的程序收到后将其显示出来,且知道了它的地址。其它主机收到该报文后相其发送
一单播报文,它就知道了其它所有主机的地址。
这样所有可发送数据的主机都在你的列表中,且不需要服务器。

2.
http://service.lonetear.com/delphi/dispdoc.asp?id=893
http://service.lonetear.com/delphi/dispdoc.asp?id=377
 
想过NMUDP的升级了吗,用D7以后没有这个控件了
 
程序自己设置,每个一段时间(如3秒)就发一个广播,携带本机的基本信息(如:IP,
机器名等,信息可加密),其他机器检测到后与本机信息比较,符合的,则显示上线,
并回应对方,表示自己在线。
 
我想提个问题:
如果对方异常关闭了程序。那么,因为点对点的关系,那么每个程序都是服务器端,也是
客户端。那么程序的出错检测,怎么做,才不会在每个程序上显示出来。也就是让每个程序
都感受不到
 
to luosum:UDP是无连接的,不存在这个问题。
 
大家应该都有windows优化大师吧?大家可以看一下windows优化大师的系统安全设置-》
附加工具-》群集ping,,,,请教那位大虾可以实现?
to 浮生:
你的想法我也想过,不过实现好象不太容易,我用了两个udp,一个专管状态判断,
一个管流的通信。但是如果你一开始就给可通信的host发信息,那么可以很快送出信息,
要是开始尝试给一个不可通信的host发信息,然后再给可通信的host发信息,那么信息
不能很快的由host收到,可能就会由timer(3秒)判断为无法通信啊,你可以试一下,
先给不存在的计算机名发信息,然后给自己发一个,速度肯定会受到影响。怎样解决这个
问题啊?
 
to zw84611:
非常感谢你!!netstart是好东东!!!你编的吗?!厉害!!!大虾有QQ吗?……
加我!!THX!!
 
做一个简单的协议, 一问一答,就可以避免这个问题.
 
是nbtstat,是我写的,其实就是仿照网络命令nbtstat(windows自带了这个程序)发送和
接收数据。写这个程序主要是为了快速得到对方的MAC地址。我没有QQ。
 
用GetUdptable和GetTcpTable
 
to 张无忌:
怎么用?能详细说明一下吗?最好给出点源程序……谢谢!!
 
顶部