簡體   English   中英

如何在Android中打開端口?

[英]How to open port in Android?

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

我有一個服務器套接字,但由於端口已關閉,所以連接被拒絕。

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

如果您仍然無法使用它,我建議您創建一個擴展Thread的內部類,以替換整個new Thread() { ... }.start()語句(我一直很難將它們轉換為當我嘗試聲明實例字段時,它的工作完全正確,我只是堅持使用這種聲明來創建/覆蓋方法。 我將使內部類(例如ClientAnsweringThread )具有一個將Socket( client )作為參數,然后調用ProcessClientRequest(_client); 就像在run()方法中一樣。

看來您只是在accept()調用周圍缺少了一個循環,所以您可以接受多個連接。 像這樣:

ServerSocket server = new ServerSocket( port );

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

為了說明我在評論中的意思:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM