例如同在本机或同在一个局域网的话:服务端:
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静态方法中 局部变量可见性问题
- 为什么Teacher能打印, dexing 就打印不了 希望大家帮帮我
- 怎么使用JAVA代码来查看基本类型所占内存的大小??即多少BIT??我想用程序来看看。
- 如何触发Button事件。
- 为什么java中的某些类不能引用
- 关于用java API 实现文字操作的提问。
- JAVA运行环境PATH变量设置后是不是可以在任何目录下面运行JAVA命令呢
- 如何处理在多线程环境下hashmap的线程不安全?
- 我运行了一个生成Frame的应用程序,但是怎样退出这个程序呢?
- 在北京广播数据(Multicast)在广州能不能收到?
- 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);
……