Android Socket访问外网IP 失败 求教

xiaobai977 2012-01-12 10:50:50
现在有两个java程序,一个运行在服务器端,一个运行在客户端:
在局域网的时候将两段程序中的 xxx.xxx.xxx.xxx 都设定为服务器的IP时程序能够正常运行。
现在将服务器端的程序运行在局域网的一台服务器上,这台服务器对应两个IP,一个是内网的IP10.22.60.28,一个是外网的IP210.52.23.14,通过外网IP访问这台服务器时要经过NAT转换,换成10.22.60.28再访问。
问题:客户端程序运行在外网的一台主机上,想将客户端xxx.xxx.xxx.xxx 设为210.52.23.14来与服务器上的程序建立连接,但服务端没有反应,请高手指导一下!


服务器端:
package com.server;
import java.net.*;
import java.io.*;
public class MyServer{
public static void main( String args[]){
ServerSocket serverSocket = null;
Socket socket = null;
String inputLine = null ;

try{
InetAddress address=InetAddress.getByName(" xxx.xxx.xxx.xxx");//本地IP
serverSocket = new ServerSocket(61008,50,address);
socket = serverSocket.accept() ;

System.out.println(socket.toString());

PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream()));

while ((inputLine = in.readLine()) != null) {
System.out.println( inputLine +"1231") ;
}
out.close();
in.close();
socket.close();
}catch( Exception e ){
System.out.println( e ) ;
}
}
}

客户端:
package com.client;
import java.io.*;
import java.net.*;
public class MyClient {
public static void main(String[] args) throws IOException {
Socket kkSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
kkSocket = new Socket(" xxx.xxx.xxx.xxx", 61008); //指定要连接的公网IP地址及端口号。

out = new PrintWriter(kkSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));
out.println("hello");
in.close();
out.close();
kkSocket.close();
}catch (UnknownHostException e) {
System.err.println("Don't know about host: taranis.");
System.exit(1);
}
}
}

...全文
2894 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
shufanhao.top 2014-07-19
  • 打赏
  • 举报
回复
怎么映射的啊,请问楼主实现了吗?我现在也遇到了这样的问题啊
xiaobai977 2013-01-20
  • 打赏
  • 举报
回复
确实是,把局域网里的服务器开放的端口用路由映射到外网地址上去就ok了
bukuiyx 2012-08-27
  • 打赏
  • 举报
回复
我也在找这个东子,怎么映射!楼主说说怎么弄啊!
liuwons 2012-05-13
  • 打赏
  • 举报
回复
++[Quote=引用 4 楼 的回复:]

这个你内网需要做个端口映射的啊,在网关做映射,不然,你外网的客户端,怎么找得到内网中指定的服务器。。
[/Quote]
xttxqjfg 2012-05-13
  • 打赏
  • 举报
回复
给楼主推荐个软件吧,花生壳,专门解决映射问题的,楼主可以去试一试…
yrnaaa 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

这个你内网需要做个端口映射的啊,在网关做映射,不然,你外网的客户端,怎么找得到内网中指定的服务器。。
[/Quote]
这个有道理。。。
zxg2006 2012-05-04
  • 打赏
  • 举报
回复
映射,域名访问
ganzi01234 2012-04-25
  • 打赏
  • 举报
回复
这个你内网需要做个端口映射的啊,在网关做映射,不然,你外网的客户端,怎么找得到内网中指定的服务器。。
wyx100 2012-04-25
  • 打赏
  • 举报
回复
内网需要做个端口映射的啊,在网关做映射,
czl923 2012-04-24
  • 打赏
  • 举报
回复
问题解决了吗,也碰到同样问题
pingxuan1987 2012-02-23
  • 打赏
  • 举报
回复
最近也在研究这个,帮顶。

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧