Android Socket访问外网IP 失败 求教
现在有两个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);
}
}
}
--------------------编程问答-------------------- 最近也在研究这个,帮顶。 --------------------编程问答-------------------- --------------------编程问答-------------------- 问题解决了吗,也碰到同样问题 --------------------编程问答-------------------- 这个你内网需要做个端口映射的啊,在网关做映射,不然,你外网的客户端,怎么找得到内网中指定的服务器。。 --------------------编程问答-------------------- 内网需要做个端口映射的啊,在网关做映射, --------------------编程问答-------------------- 映射,域名访问 --------------------编程问答--------------------
这个有道理。。。 --------------------编程问答-------------------- 给楼主推荐个软件吧,花生壳,专门解决映射问题的,楼主可以去试一试… --------------------编程问答-------------------- ++ --------------------编程问答-------------------- 我也在找这个东子,怎么映射!楼主说说怎么弄啊! --------------------编程问答-------------------- 确实是,把局域网里的服务器开放的端口用路由映射到外网地址上去就ok了
补充:Java , J2ME