例如同在本机或同在一个局域网的话:服务端:
ServerSocket server = new ServerSocket(8888);
……
客户端
Socket socket = new Socket("127.0.0.1",8888);
//或者Socket socket = new Socket("192.168.0.111",8888);
……
这样即可。
但是如果不在本机也不在一个局域网中,服务端在公网呢?
代码该怎么写呢?
ServerSocket server = new ServerSocket(8888);
……
客户端
Socket socket = new Socket("127.0.0.1",8888);
//或者Socket socket = new Socket("192.168.0.111",8888);
……
这样即可。
但是如果不在本机也不在一个局域网中,服务端在公网呢?
代码该怎么写呢?
解决方案 »
- 请高手解析一下java.util.timer 工作原理...
- 如何给这个程序解耦合,有点挑战性。
- 关于数据源问题
- 在java中有很多类有parse的方法,它到底是干什么用的?
- spring+hibernate结合时,OpenSessionInView的问题
- 恳求大家帮我想想:除了用JApplet以外,还有什么方式可以在网页上加载一个GUI页面?
- 请问各位大侠,RuntimeException,与普通的异常有什么区别
- Java的编译问题?
- Mission impossible? (babysloth, wangwenyou, jimjxr, abcabcabc please come in)
- 哪里有《数据结构与算法分析(JAVA版)》的电子书下载,谢了:)
- SWT setImage 问题!高手进
- 入门的一个小程序,java JVM是怎样运行此程序
"127.0.0.1" 这个是连接本地服务器的ipSocket socket = new Socket("192.168.0.111",8888);
"192.168.0.111" 这个是连接局域网的服务器的ip你只需要知道你要连接的外网ip 就可以了 写法一样的。。没有任何区别~~ 只是速度不会那么快。。
具体办法去百度查吧,,我也忘记了。。映射完成 外网就能够访问了
你可以在自己机器上 cmd里面 ping ip(这个ip就是外网的局域网ip) 如果ping通了 就ok了。。
192.168.0.111是c类私有地址内部局域网用的
想知道自己的外网ip 可以访问ip168查看
你只用把Socket socket = new Socket("外网ip",8888);改了就行了
如果不在服务器时局域网 不是单线的,,, 那就必须得在路由器上映射你的ip。。 不然你查到了ip还是没用 反正你本机上能够ping通外网ip 就肯定可以连接通。。
知道了它的公网的IP如:112.120.133.62,那么,服务端是否应该这样写:
ServerSocket server = new ServerSocket(2222);
……
客户端:Socket socket = new Socket("112.120.133.62",2222);
……