首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

聊天室程序解决方案

2012-05-05 
聊天室程序我想做一个和QQ一样的聊天室程序!请高手做答请问在C\C++代码中如何实现本地局域网和外部公网

聊天室程序
我想做一个和QQ一样的聊天室程序!<请高手做答>
请问在C\C++代码中如何实现本地局域网和外部公网的通信?

[解决办法]
公网只有有暴露的IP就可以了

客户端使用TCP / UDP 直接链接到公网服务器就可以了。 
某一个客户端发一条信息就由服务器同步到其它客户端。

如果你想建立 客户端 到 客户端的直接链接。
需要使用UDP协议。
首先2客户端分别与公网服务器交互, 然后由公网服务器协调,交换2个客户端的链接信息, 然后由2个客户端直接使用UDP通信
不过,你不用做到这一步吧, 只要做到前面的一步就可以实现了。
[解决办法]
要与外网通信,需要穿越NAT,可以到网上找找P2P的相关资料
[解决办法]
qq的大致原理是
1.客户端使用TCP / UDP 直接链接到公网服务器(公网服务器的ip,端口号客户端程序都知道)
2.公网服务器反馈给用户的好友列表(包括好友的ip,端口号)
3.和好友聊天时,客户端使用TCP / UDP 连接好友机器,如果好友的机器不是暴露在公网就使用p2p方式进行打洞.
4.连接建立了就可以聊天了.
其实两个人能聊天关键是要想办法得到对方的ip,和端口号,知道了这两个东东,socket就有办法跟对方进行连接通讯
[解决办法]
http://topic.csdn.net/u/20070813/12/57f600c7-4ac8-40e2-89b1-8586fee5d557.html
[解决办法]
有公网服务器就可以
[解决办法]
内网可以向公网发起连接,公网不能直接连接内网。如果两端分别在不同的内网,则需要公网上有一台服务器,通过服务器来转发数据,或者从服务器获取对方使用的公网地址和端口,然后“打洞”。
[解决办法]
要与外网通信,需要穿越NAT,可以到网上找找P2P的相关资料

热点排行