最近要做个项目,类似于qq,但是功能没有qq强大,主要项目要在广域网上用,主要功能能传文件和聊天就可以,我查了很多资料,对于stun,turn , ice这几种解决方案,我不知道选哪一种好,只知道stun不能解决对称nat,不支持tcp;而turn支持所有nat,但是所有数据都要通过服务器,服务器负担比较大,我倾向于这个方法,因为用户不是很多。ice可以解决前两种方法的所有缺点,但是好像比较麻烦。
  我想问一下1:现在网络上的nat是对称nat多还是非对称nat多?
  2:现在开发网络通信软件一般用什么技术?
  3:像我这种项目可以推荐一种方法?当然不考虑以后升级问题
  4:如果我要用http隧道技术穿越防火墙,有必要没有必要,我的这个程序只是用一般的用户。
谢谢回答呀

解决方案 »

  1.   

    本帖最后由 VisualEleven 于 2010-11-22 11:56:28 编辑
      

  2.   

    谢谢yanghehong
     
    (千里孤行)
    我想问一下,现在做这种通信软件大部分都是用ICE这种方法吗?
      

  3.   

    XMPP就是这么做的。其他商业产品可能不是。
      

  4.   

    谢谢yanghehong
     
    (千里孤行)其他的有没有高手帮忙解决呀
      

  5.   

    1:现在网络上的nat是对称nat多还是非对称nat多?
    答:锥形NAT比对称NAT多,而且锥形NAT是趋势,越多的设备支持。2:现在开发网络通信软件一般用什么技术?
    答:这个问题等没问,具体要看你做应用!3:像我这种项目可以推荐一种方法?当然不考虑以后升级问题
    答:你前面说的前提:用户不多、广域网使用、要穿NAT、要穿防火墙、要TCP,那我建议你直接用HTTP做,通过服务器中转,直接VC的库做,估计你2个星期就能做出来。如果你用STUN、TURN、ICE、UDP、还要在UDP上实现高性能可靠的文件传输,代码都自己写,不知道你几个人做,如果你1个人做,保准你1年时间做不出好效果。4:如果我要用http隧道技术穿越防火墙,有必要没有必要,我的这个程序只是用一般的用户。
    答:用HTTP做吧。如果你真想P2P,那看看我做的组件,看能不能帮你省点事。在这里:www.peergine.com