两台在不同网吧的机器如何建立TCP连接或实现UDP数据传送? ( 积分: 200 )

  • 主题发起人 主题发起人 990
  • 开始时间 开始时间
9

990

Unregistered / Unconfirmed
GUEST, unregistred user!
两台电脑A和B在不同网吧,也就是在两个不同的局域网中,且都可以通过网关或路由器连接INTERNET。同时A和B还可以通过一个固定的服务器交换少量数据。

我的需求很象OICQ,A 和 B 在通过固定服务器交换IP地址后,互相建立TCP连接或使用UDP交换数据。

例如我用TIdTCPServer建立TCP服务,监听端口12345。那我问题的关键在于如何获取路由器对应12345映射的端口号? 请问OICQ是如何实现的?
 
两台电脑A和B在不同网吧,也就是在两个不同的局域网中,且都可以通过网关或路由器连接INTERNET。同时A和B还可以通过一个固定的服务器交换少量数据。

我的需求很象OICQ,A 和 B 在通过固定服务器交换IP地址后,互相建立TCP连接或使用UDP交换数据。

例如我用TIdTCPServer建立TCP服务,监听端口12345。那我问题的关键在于如何获取路由器对应12345映射的端口号? 请问OICQ是如何实现的?
 
关注。

OICQ用的UDP。

TidTCPServer建立连接至少得服务方有公网IP。我现在是这么认为的。
 
我是开网吧的,
你想干什么?
 
要知道對方公網的IP﹐不知他們的動態綁定是怎樣的﹐你查一查
 
两台电脑都在服务器后面.不能用TCP只能用UDP.因为服务器临时分配的端口保存时间很短.所以这两台电脑必须一直发心跳消息来维持端口的不变.并且把IP和端口信息场地给服务器.分别取对方的.就可以通讯
 
to LL_11: 我是为了描述问题才举例说在网吧环境,和网吧无关。

to 网中戏: 可是我如何取得UDP服务的端口呢?
 
典型的P2P问题,网上有VC的例子,你可以去p2p中国找找看,我试过是可以的。
 
通过TCP或UDP都可以,实现原理可以是:在中间服务器上有一个服务端程序(S),A、B端如要通讯,可分别在S那里登录,并在S那里注册相应的本地IP及端口,这样一来,A、B端就可以分别取得对方的IP、Port,从而可以进入下一步通迅。
像你所说的,我还是建议你采用UDP方式,因为UDP没有Client/Server的区分。
 
好象要进行端口映射才能连得上
 
当然是具有独立公网地址的计算机来告诉他们的.
 

Similar threads

后退
顶部