套接字连接到8443确定但不是443?

时间:2011-09-28 16:54:53

标签: android sockets tomcat

我在android上做了一些套接字编程(注意我说套接字,而不是HttpClient或HttpUrlConnection)我遇到了一个非常奇怪的问题,我无法在端口443上连接到我的tomcat服务器但是8443很好。我的代码很简单,这就是它的全部内容:

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    try{
        Socket s = new Socket();
        InetSocketAddress addr = new InetSocketAddress("10.1.1.1", 443);
        s.setKeepAlive(true);
        s.setSoTimeout(300000);
        s.connect(addr);
    }catch{<my catch statement>}
}

这就是全部。我将程序推送到我的设备并启动它但它总是引发SocketException: Operation Timed Out错误。但是,如果我将服务器端和代码端的端口切换到8443,我的设备可以连接没问题。我只是在更改server.xml文件中的数字。

有趣的事情,如果我在计算机上的模拟器中运行相同的东西,它的工作正常。我还在设备和我的计算机之间的连接上运行wireshark,看起来它一直在丢回ICMP Destination Unreachable: Destination Port Unreachable。当我可以从我的设备ping它时怎么样?

我看看这是否更适合在服务器故障上,但从那里的常见问题解答,它似乎更专注于专业而非个人服务器问题。有没有人知道为什么Android设备无法连接到我的服务器上的某些端口,当我的模拟器可以?为什么切换到8443突然允许连接工作?

1 个答案:

答案 0 :(得分:1)

您的Android设备与服务器之间是否存在防火墙(桌面(模拟器)与服务器之间不存在?)