java socket 问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java socket 问题相关的知识,希望对你有一定的参考价值。
背景: 我想做一个跨路由的聊天程序,服务器端在路由器A下,局域网ip地址为 192.168.0.103 路由器ip为
假设为 202.207.208.209;
客户端在路由器B下,局域网ip也是192.168.0.103, 路由器ip假设为202.207.208.210
这是我写的服务器端的ServerSocket: 我在路由器里设置了端口映射10019端口
String st=new String("192.168.0.103");
ServerSocket serverSocket=new ServerSocket(10019,1,InetAddress.getByName(st));
这是我写的客户端Socket:
Socket socket=new Socket(InetAddress.getByName("202.207.208.209"),10019,InetAddress.getByName(“192.168.0.103”),10018);
但是出现错误 java.net.ConnectException: Connection refused: connect
求高手指教!!!
即使双方机器 IP 不相同但都在 192.168.* 范围内依然无法跨越互联网路由器。
所以你想在跨路由器上处理需要进行 NAT 转换,在两方路由器上都为某个 IP 进行 NAT 映射,比如: 把 01001 映射为 192.168.0.1 的聊天端口,把 01002 映射为 192.168.0.2; 10103 映射到 192.168.10.103 的聊天端口上,依此类推。给 A 网 10.103 发送消息就连接到 202.207.208.209:10103 端口。 参考技术A 源地址、目标地址,是相同的。程序认为是本机,而你本机又没有监听端口,所以连接失败。
你在A网通过ping、或共享访问如何访问B网的同IP的?你现在就如何做。
以上是关于java socket 问题的主要内容,如果未能解决你的问题,请参考以下文章
linux用java socket与c的socket通信乱码问题
Java中使用Socket连接判断Inputstream结束,java tcp socket服务端,python tcp socket客户端
Java Socket通信介绍及可能遇到的问题解决_java - JAVA