例如同在本机或同在一个局域网的话:服务端:
ServerSocket server = new ServerSocket(8888);
……
客户端
Socket socket = new Socket("127.0.0.1",8888);
//或者Socket socket = new Socket("192.168.0.111",8888);
……
这样即可。
但是如果不在本机也不在一个局域网中,服务端在公网呢?
代码该怎么写呢?

解决方案 »

  1.   

    Socket socket = new Socket("127.0.0.1",8888);
    "127.0.0.1" 这个是连接本地服务器的ipSocket socket = new Socket("192.168.0.111",8888);
    "192.168.0.111" 这个是连接局域网的服务器的ip你只需要知道你要连接的外网ip 就可以了  写法一样的。。没有任何区别~~ 只是速度不会那么快。。
      

  2.   

    局域网的话 就需要在 路由器上 映射你的局域网ip。  
    具体办法去百度查吧,,我也忘记了。。映射完成 外网就能够访问了
    你可以在自己机器上 cmd里面 ping ip(这个ip就是外网的局域网ip)   如果ping通了 就ok了。。
      

  3.   

    127.0.0.1是本地 
    192.168.0.111是c类私有地址内部局域网用的 
    想知道自己的外网ip 可以访问ip168查看
    你只用把Socket socket = new Socket("外网ip",8888);改了就行了
      

  4.   


    如果不在服务器时局域网 不是单线的,,, 那就必须得在路由器上映射你的ip。。 不然你查到了ip还是没用   反正你本机上能够ping通外网ip 就肯定可以连接通。。
      

  5.   

    假如服务端的路由器的特定端口如:2222映射了局域网如:192.168.0.120,
    知道了它的公网的IP如:112.120.133.62,那么,服务端是否应该这样写:
    ServerSocket server = new ServerSocket(2222);
    ……
    客户端:Socket socket = new Socket("112.120.133.62",2222);
    ……