内网和外网格式什么概念啊,java做一个像qq那样的软件和局域网通信的软件,原理一样吗?还有怎么得到外网ip呢,多谢

解决方案 »

  1.   

    外网一般指互联网;内网指局域网。单机上互联网一般需要个 猫。内网要上外网,一般需要路由器,比较常见的就是无线路由了。你应该经常听说什么“共享上网”吧?
    qq那样的软件和局域网通信的软件,原理有相同也有不同:
    主局域网通讯,多以广播+点对点为主;
    QQ这种互联网通讯,以服务器消息转发为主。
    外网IP一般要在 猫 上才能查到,3G上网卡也是一种猫。
      

  2.   

    内网是指在同一个IP地址段内的所有主机构成的网络。
    外网是相对内网而言的,不在内网就在外网。通常我们也可以把局域网称为内网,把互联网称为外网。局域网通信,各主机之间,由于在同一个网段内,所以,不需要路由器转发数据。
    互联网通信,各主机之间,不在同一个网段内,所以,之间需要(很多个)路由器转发数据。
    每个路由器,像交警一样,指挥你要发送的数据,走哪条路才可以。QQ是互联网聊天工具,和局域网聊天工具,还是有区别的。
    而且QQ使用的是UDP协议来传递短消息。局域网和互联网通信,主要区别还是在于,外网出口的路由器,是否进行了NAT和PAT转换。
    一般互联网通信,外网出口的路由,都会进行转换。
    那么,在程序设计的时候,采用C/S架构,并且,服务端要进行消息转发。
    如果服务端不进行消息转发,而要各个客户端之间点对点通信,那么,在外网场景下,还要进行“打孔”。
    这个就比较麻烦了。