向外使用的IP肯定要是公用IP吧,不能是私有ip

解决方案 »

  1.   

    需要一方的局域网NAT配上静态映射,
    另一方去连接对方的外部地址。
      

  2.   

    同意 keios(离开电信的日子)
      

  3.   

    to keios:
      如果两方都在局域网中呢?
      

  4.   

    还有,如果用NAT配上静态映射,那么就只能有一台机用那个端口了,如果要想做QQ那种应用怎么办?(就是局域网中多人同时用QQ)
      

  5.   

    必须有一个对外公用的服务器地址,然后让客户端去连结这个服务器,至于客户端是否共用一个IP地址是没有关系的,因为是从不同的端口出去的。QQ的道理是一样的。
      

  6.   

    to airlulu(airlulu)
    没错,你说的就是NAT(Network Address Translation)技术。
    你所说的 "因为在局域网中的机器向外使用的IP都是一样的"
    就是在网络的出口处使用了NAT技术,
    分配给内网机器一个临时的外部地址以供访问(主要是用来接收)外部网络,
    所以才会 "使用的IP都是一样的" 。具体原理你自己找找资料吧。一般NAT服务器会提供这样的功能:1)给内网的某台机器分配一个固定的外部地址,
    或者2)给内网机器的某个服务端口分配一个固定的外部地址和端口,
    这样,另一端局域网内部的机器就可以直接使用TCP连接这个地址/端口即可。
    具体怎么配,要看你使用的何种NAT服务器了。
      

  7.   

    有什么NAT服务器?(比较著名的)“给内网的某台机器分配一个固定的外部地址”,不是只有一个IP吗,分了不就没了?
      

  8.   

    我说的“服务器”不是客户-服务器模式的服务器,
    实际一般是使用局域网出口的路由器或者防火墙上提供的NAT功能,
    linux的IP Masq也是一种NAT实现。
    一定要给我分哟 :)
      

  9.   

    干嘛非要用NAT呢,其他的代理也可以的
    原理同上,只要你能访问外部的网站就可以的
      

  10.   

    to l_clove(倚天把剑观沧海·天下):
      除了NAT,还有什么办法可以访问外网吗?
      

  11.   

    如果服务器使用外部ip(实ip)客户端就不用考虑是否是在局域网内
      

  12.   

    NAT需要配置静态映射呀,而好像QQ那样的一安装就可以用拉,都是用8000端口的,它是怎么实现的呢?
      

  13.   

    如果两边都在局域网内的话,QQ要通过服务器中转才能互通信息。
    且QQ使用的UDP,不是TCP
      

  14.   

    to airlulu (airlulu) :
       今天看到你问"客户端是否共用一个IP地址是没有关系的,因为是从不同的端口出去的",现作如下说明,希望对你有所帮助(注意:这里以应用程序为最小单位)。基于tcp/ip协议的应用程序在广域网的全址有两种情况:   直接连结internet的应用程序地址 = 出口ip地址 + 出口端口;   局域网内的应用程序地址 = 出口ip地址 + 出口端口+(代理服务)+本地ip地址+本地端口(监听端口);   代理服务有很多,几乎所有的拨号软件都有代理功能(win2000,winxp,winme都自带),还有wingate,sysgate等等,这些代理软件根据不同的协议(主要有两种:socket4 和 socket5,都是基于TCP/IP的,如果您有兴趣的话也可以编写一个)提供地址的转换功能,在此请各位不要和前面朋友keios(嘿嘿) 所说的NAT技术混淆,NAT只是一个虚拟映射技术。其中局域网内的应用程序地址是要通过代理服务才能访问外部网络,代理服务由连结internet的服务器提供,同样地,外部网络访问内部网机器的应用程序的时候,只是访问该服务器对应的端口,然后代理服务软件负责把外部的消息传送到和该端口对应的本地机器上(注意:端口和应用程序是一一对应的,一个机器可以在服务器上有多个端口)。因此,只有内部网的机器的应用程序先请求代理服务器分配到一个端口,才能被外部的程序访问到,这就是为什么必须客户端要先连结服务器端,而且服务器端一定要放在可以由外部ip的机器上。就写这么多吧,最后祝大家愉快!
     
      

  15.   

    再 to airlulu (airlulu) :
      QQ的8000端口是远程腾讯服务器的监听端口,本地的端口不需要设置,由系统自动分配。
      

  16.   

    to freebird_hrt:
      谢谢你的回答!“广域网的全址”和“socket4 和 socket5”使我找到了方向了。
    最后再问一下,看些什么书可以获得上面的相关知识呢?
      

  17.   

    to airlulu (airlulu):
    有关网络编程的书都会涉及到这些内容,你可以到书店看一下,很多的!