簡體   English   中英

使用套接字交替發送和接收byte []

[英]Alternately sending and receiving byte[] using Socket

我需要使用Socket交替發送和接收字節[]。 這個怎么做 ? 使用什么包裝器? 這樣可以嗎,或者我可以更快地做到這一點

public boolean SendMessage(byte[] data){
        try{
            socket = new Socket(ipAddress, port);
            OutputStream socketOutputStream = (OutputStream) socket.getOutputStream();
            socketOutputStream.write(data);
            socket.close();
            return true;
        }
        catch(Exception exc){
            System.err.println(exc.getStackTrace());
        }
        return false;
    }

調用此函數后,我調用函數以接收字節,然后再次發送=> receive等。 有更快的方法嗎?

使用相同的套接字進行讀取和寫入,只需同步兩個應用程序,以便一個讀取而另一個寫入,反之亦然。

您應該使用相同的套接字,而不是每次都創建一個新的套接字來發送/接收然后關閉它。

說,創建兩個線程。 一個作為SenderThread,另一個作為ReceiverThread。 SenderThread創建一個套接字,然后獲取輸出流,您可以使用帶有標志的while循環來指示它是否應該運行。

Eg: while (running){

應該在ReceiverThread中完成相同的操作。 創建套接字和輸入流。 然后運行while循環。

在while循環中,您可以提供將數據寫入流或從流中讀取數據的邏輯。

使用wait和notify,以便線程和諧運行。

暫無
暫無

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

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