如何在Android中打开端口?

时间:2010-08-05 14:25:22

标签: android sockets connection port

如何在android中打开特定端口?

我有一个服务器套接字但由于端口已关闭而拒绝连接。

try {
   ServerSocket server = new ServerSocket(2021);
   Socket client = server.accept(); 
} catch (Exception e) {
   // TODO Auto-generated catch block
   a = false;
   e.printStackTrace(); 
} 

3 个答案:

答案 0 :(得分:1)

如果你仍然没有让它工作,我建议你创建一个扩展Thread的内部类来替换整个new Thread() { ... }.start()语句(我一直遇到麻烦)当我尝试声明一个实例字段时,让那些工作完全正确,我只是坚持在那种语句中创建/重写方法)。我会让内部类,比如说ClientAnsweringThread,有一个构造函数,它接受Socket(client)作为参数,然后在ProcessClientRequest(_client);方法中调用run()已经有。

答案 1 :(得分:0)

看起来您只是错过了accept()调用周围的循环,因此您可以接受多个连接。像这样:

ServerSocket server = new ServerSocket( port );

while ( true )
{
    Socket client = server.accept();
    ProcessClientRequest( client );
}

答案 2 :(得分:0)

说明我在评论中的含义:

ServerSocket server = new ServerSocket( port );
while ( true )
{
    Socket client = server.accept();
    new Thread () { 
        final Socket _client = client;
        // This stuff runs in a separate thread all by itself
        public void run () {
            ProcessClientRequest(_client);
        }
    }.start();
}