簡體   English   中英

在Java中同時監聽兩個端口

[英]Listen to two ports simultaneously in java

我正在使用Java開發聊天應用程序。 我要實現的功能之一是,除了client1與client 2聊天(工作正常)之外,client1還將向client2發送輔助信息(來自Arduino的數據)。 我的想法是偵聽服務器上的兩個端口,一個用於聊天,另一個用於輔助信息,我使用了兩個ServerSockets,當然還有兩個accept()語句,它們一直處於阻塞狀態。 我的問題是如何在Java中同時打開兩個端口? 我開始是這樣的:

new Thread() {
            public void run() {

                while(true) {
                    try {
                        Socket client1 = server.accept();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    //handle client1
                }
            }}.start();
            new Thread() {
                public void run() {

                    while(true) {
                        try {
                            Socket client2 =arduinoServer.accept();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        //handle client1
                    }
                }}.start();

但是我在線程“ pool-1-thread-1” java.lang.NullPointerException中得到了異常

謝謝。

當然,他們繼續封鎖。 accept()是一種阻塞方法。

您需要兩個線程中的兩個accept()循環。

暫無
暫無

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

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