如何利用clientsocket/serversocket 实现局域网与互联网的通讯 ( 积分: 200 )

  • 主题发起人 主题发起人 ForEverySecond
  • 开始时间 开始时间
F

ForEverySecond

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个类似QQ的聊天工具:一个局域网内的机器(客户端)通过代理上网,要求它们都可以和一台互联网上的机器(服务器端)通讯,可是我不明白:服务器端怎样得到客户端的ip地址
 
我想做一个类似QQ的聊天工具:一个局域网内的机器(客户端)通过代理上网,要求它们都可以和一台互联网上的机器(服务器端)通讯,可是我不明白:服务器端怎样得到客户端的ip地址
 
服务端其实可以不用知道客户端IP地址,可以是客户端自己到服务器上去读!
 
用回调函数可以实现,不要用ClientSocket/ServerSocket:
1.做一个服务程序,放在服务器上
2.客户端登录服务器,向服务器注册回调函数
3.消息直接发给服务器,由服务器转发到目标用户(回调,不需要知道客户机的IP)
4.服务器维护一个用户列表
 
使用P2P原理

其原理如下:
当客户登录时将与服务器建立一个连接,本连接可用于客户与服务器间的通信。
当一个客户想直接连接另一客户时其通过服务器得到
对于公网间的两客户之间通信上述实现是很简单的,但对于局域网内客户与其他电脑间通信则不是那么简单。因为外网无法直接得到内网的IP地址。
这需要通过服务器由服务器通知被叫客户向主叫客户打开一个通道。
被叫客户打开通道后再通过服务器告诉主叫客户,此时主叫客户就可以向被叫客户直接通信了
 
->jjmwangx
你说的几种方法能不能举一个例子,谢谢啊
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部