Android手机3G网络访问TCP服务器失败

问题描述:

测试时发现手机(电信3G网络)tcp客户端连接不上tcp服务器(校园网固定公网ip)了,一直连接超时,但是切换到wifi后可以连上。

有段时间之前测试过3G是可以连上的TT..

 

后续测试:

——————————————————————————————­­

测试环境1:硬件环境——网络

Client   安卓手机——电信3G、联通3G、移动3G

Server   PC        —— 校园网固定公网IP

TCP连接测试结果:

error1:客户端连接服务器时Socket建立超时fail

或者

error2:

java.net.SocketTimeoutException:Transport endpoint is not connected

服务端提示:

11:39:35 MSG TCPsocket error 1, The remote host closed the connection


测试环境2:硬件环境——网络

Client    安卓手机—— 分别接入校园网wifi

Server    PC      —— 校园网固定公网IP

TCP连接测试结果:

success:客户端通过校园网wifi可成功连接上服务器。


测试环境3:硬件环境——网络

Client    安卓手机—— 分别接入电信宽带wifi

Server    PC      —— 校园网固定公网IP

TCP连接测试结果:

Day1-success:客户端通过电信wifi可成功连接上服务器;

Day2-failed:客户端通过电信wifi连接服务器失败


测试环境4:硬件环境——网络

Client    安卓手机—— 分别接入电信3G、移动3G、联通3G

                             校园网wifi、电信宽带wifi

Server     PC     —— 电信宽带动态IP(通过获取该ip后访问)

TCP连接测试结果:

success:多次测试客户端通过3Gwifi皆可成功连接上电信服务器。


小结:

服务器网络:校园网{电信3G/联通3G/移动3G 连接均不成功,使用校园网wifi成功}

服务器网络:电信宽带(连接成功){电信3G移动3G联通3G,wifi

猜想:

校园网公网ip在入口处有限制

——tcp端口被封掉或者ip被过滤,只允许校园网+校内宽带ip(待测)能通过。 

附:

Socket建立,测试代码:

code

//连接服务器

try {    //mSocketClient= new Socket(sIP, port);                    

       mSocketClient = new Socket();

       mSocketClient.connect(new InetSocketAddress(sIP,port), TIME_OUT);

      Log. i(TAG, "socketcreated!");

      manageConnectedSocket( mSocketClient,0); 

} catch (UnknownHostExceptione1) {

      Log. e(TAG, "error1-"+e1);

      e1.printStackTrace();

} catch (IOExceptione1) {

      Log. e(TAG, "error2-"+e1);

      e1.printStackTrace();

}  

androidtcp

 transportendpoint is not connected

error

 error2-java.net.SocketTimeoutException:Transport endpoint is not connected

你可能感兴趣的:(Android开发)