日期:2014-05-20  浏览次数:20743 次

java Socket 编程
背景: 我想做一个跨路由的聊天程序,服务器端在路由器A下的主机a上,a的局域网ip地址为 192.168.0.103  路由器ip假设为 202.207.208.209;
客户端在路由器B下的主机b上,b主机局域网ip也是192.168.0.103, 路由器ip假设为202.207.208.210 
我在路由器里设置了端口映射10019端口。
这是我写的服务器端的ServerSocket:
ServerSocket serverSocket=
new ServerSocket(10019,1,InetAddress.getByName("192.168.0.103"));

这是我写的客户端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的话 我估计 你跟本就连不通。
------解决方案--------------------
服务器必须是固定ip可以接入公网的IP,这个ip需要向运营商购买,不然做局域网内你只能做模拟广域网通信了。
------解决方案--------------------
你这不是Socket的问题,问题是你要把网络先搞通