簡體   English   中英

如何判斷是否在Java中建立了連接?

[英]how to tell whether a connection is established in java?

我試圖在android中的兩個模擬器之間建立一個套接字通道。 我寫了以下代碼:

    public SocketChannel connect2node(String ip, int port) {
        SocketChannel client = null;
        try {
            client = SocketChannel.open(new InetSocketAddress(ip, port));
            client.configureBlocking(false);
            client.register(selector, SelectionKey.OP_READ);

            if (!client.isConnected()) {
                Log.i("server connection", "error");
                return null;
            }
        } catch (IOException e) {
            String s = e.getMessage();
            e.printStackTrace();
        }

        return client;
    }

注意我尚未在(ip,port)中啟動另一個仿真器,這意味着連接將始終失敗。 當我開始調試上面的代碼時,我發現了

    if (!client.isConnected()) {

然后跳轉到catch塊:

     e.printStackTrace();

catch塊中的所有其他行均未執行,並且返回時客戶端不為null。 那么如何判斷連接是否成功建立呢?

isConnected()測試毫無意義。 如果open()無法連接,它將引發異常。

暫無
暫無

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

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