类似QQ聊天的问题(200分)

  • 主题发起人 主题发起人 dongxuzhao
  • 开始时间 开始时间
D

dongxuzhao

Unregistered / Unconfirmed
GUEST, unregistred user!
A,B 在代理后面. A内网端口:4002 . A---->Server信息. Server 得到A 的IP和端口.
Server 直接用得到的IP和端口----->A. A能收到. B 用Serve得到的IP和端口, 象A发
A收不到,请做过的指点一下,多谢了. 我用的控件是TNMUDP.
 
我用TNMUDP也遇到过一样的问题,甚是棘手,在论坛上问,保得到结果要我换一个控件试试,
我没换,到现在还没解决。
 
象你这种情况,不仅B向A发收不到,连SERVER换一个UDP,照那个端口发,我的也会收不到,
不知你试过没,可不可以收到。
还有一点就是,如果SERVER隔长了时间没跟A通信,向A发消息也会收不到了。噻。
 
To zxp_ping,
你说的对,好象得不能简单的侦听,得先做端口映射,但不知道怎么做.哪位老兄能指点一下吗?
 
用Winsock作端口监听
 
TNMUDP这个控件有Bug,比如你的一个程序使用了这个控件,那么程序运行时,你不能关机。
我认为你的问题也是个Bug:
在B中与server通讯后一定要断开,再重新指定控件的端口,ip,再与A连接。而TNMUDP中
并不提供相应的方法如:connect,disconnect.(虽然UDP不是基于连接的)
还是换个控件吧。
我认为ICS比较好:www.overbyte.be
 
ics的WSSock居然好象只有分开使用?发送的不能用来监听?还是我搞错了?
 
UP.
非常想知道答案,QQ是如何实现的?能够不同局域网内传送消息?
 
我写了一个控件UDP,使用和delphi的TClientSocket查不多,测试是没有问题的,
使用很方便,如果需要我的话,我就上传到playicq。。。
 
http://www.playicq.com/dispdocnew.php?id=4043
 
张无忌, 不愧网络高手,厉害.
 
后退
顶部