簡體   English   中英

用Java讀取套接字數據

[英]read socket data with java

我正在使用websocket發送數據,這是代碼(javascript)

  socket= new WebSocket('ws://localhost:10302/socket');
                      socket.onopen= function() {
                          socket.send('delete structure'+c);
                      }

在服務器端,我正在使用Java,這是代碼

try {
        standardiste = new ServerSocket(10302);
        while(true) {
            System.out.println("listening data from socket");
            socket = standardiste.accept();
            try {

                BufferedReader  entree = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                while(entree!=null)
                {

                System.out.println(entree.readLine());
                }
            }
            catch(IOException exc) {
            }
            socket.close();
        }
    }

我想讀取發送的數據?

您需要的是

String line;
while((line = entree.readLine()) != null){
    System.out.println(line);
}

您嘗試的是將BufferedReader綁定到Socket中,但從不讀取任何內容。 這就是BufferedReader.readLine()方法的用處,該方法從緩沖區讀取一行(直到到達結束符)。

通過將當前行與null( readLine() != null )進行比較,您可以繼續讀取直到停止接收傳輸結束為止。

編輯:

恐怕WebSocket協議與Java Socket協議不同,因此它僅接收標頭,但無法識別正在發送的任何實際數據,這很簡單,因為協議不匹配。 嘗試使用Java WebSocket類。 這是一個很好的教程。

暫無
暫無

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

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