最近在做一个网络通讯系统,需求是:
1、实现点对点,点对多,多对多的互相通讯;
2、使用TCP连接,保证数据的可靠性;
3、无服务器,即每台主机既是客户端又是服务器,不想维护服务器;
4、可以在各种网络环境下都能实现通讯,如内网与公网,公网与公网,内网与内网(好像要涉及到NAT穿透)
我在网络编程方面完全是个新手(异步通讯看了几天也没完全整明白),但是任务紧急,有哪位大神能给个可行的设计方案,如果能有实际代码就更好了,谢谢啦!网络编程
1、实现点对点,点对多,多对多的互相通讯;
2、使用TCP连接,保证数据的可靠性;
3、无服务器,即每台主机既是客户端又是服务器,不想维护服务器;
4、可以在各种网络环境下都能实现通讯,如内网与公网,公网与公网,内网与内网(好像要涉及到NAT穿透)
我在网络编程方面完全是个新手(异步通讯看了几天也没完全整明白),但是任务紧急,有哪位大神能给个可行的设计方案,如果能有实际代码就更好了,谢谢啦!网络编程
建议使用XMPP协议,需要服务器端,但有很多开源的服务器端,开源的客户端也非常多。
并且协助打洞
没了服务器,双方怎么知道IP和端口?
发短信?
就是p2p.类似电驴之类的软件都是这种方式。包括QQ中的视频音频。
2、使用TCP连接,保证数据的可靠性;
不能使用tcp,没办法穿透NAT。
3、无服务器,即每台主机既是客户端又是服务器,不想维护服务器;
p2p也是需要至少一台服务器作为会话管理的,对于2台不同内网的电脑需要一台服务器作为辅助建立连接。
这个连接过程需要多次穿过NAT,具体过程比较复杂,但是度娘很精通~~
4、可以在各种网络环境下都能实现通讯,如内网与公网,公网与公网,内网与内网(好像要涉及到NAT穿透)基于udp之上的改进协议可以满足你的要求。