在写client时,需要写这么一句Socket s=new Socket(address,9999);这个地址,局域网内输入192.168.0.xxx都可以互联。如果不是局域网,这个地址该怎么填,就是通过ADSL连接网络是分配的那个地址么?还有就是如果我是通过路由器上的网,外界电脑如何连接到我的电脑,这个address该如何填?

解决方案 »

  1.   

    http://topic.csdn.net/t/20050905/08/4249413.html
    这个网页的或许对你有用 
      

  2.   

    如果不是局域网,这个地址该怎么填,就是通过ADSL连接网络是分配的那个地址么?直接填广域网的IP即可,不要想着连另外一个局域网的192.XXXX
    还有就是如果我是通过路由器上的网,外界电脑如何连接到我的电脑,这个address该如何填?在路由器上设置端口映射!!! 
      

  3.   

    address用路由器的外网IP+你程序的端口(此端口要在路由器上映射)
      

  4.   

    想接连外网,看看,你路由端口中映射出的外网的地址是多少,就行了。java 在做服务端时,这个地址,一般是可用的。
      

  5.   

    如果是你是ADSL上网的话,你不需要设置端口映射,首先尝试是否可以ping 目标IP
    如果可以的话,socket直接连接应该没问题
    原因是ISP自己的边界路由器的会帮你寻找,你自己所谓的路由器相对于ISP的网络来说
    只是个Internal GeteWay
      

  6.   


    1: 你的机器通过路由可以找到 网游服务器的IP
    2:网游并不知道你的机器,他连接的是路由IP上的某个端口1
    3:路由端口所有内容直接转发到你的机器某个端口2路由IP--端口1  ClientIP--端口2 可能是自动维护的  以上全是猜的!!!!