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);
}
}
}