簡體   English   中英

Java Socket-通過對象流傳遞int?

[英]Java Socket - passing int through object stream?

我正在處理Java流,在服務器端,我試圖通過objectOutputStream發送int並在客戶端接收它。 但是我沒有在客戶端收到任何東西。

這是服務器端發送int

public static int PLAYER1 = 1;
new ObjectOutputStream(player1.getOutputStream()).writeInt(PLAYER1);

這是接收該int的客戶端:

fromServer = new ObjectInputStream(socket.getInputStream());

這是我測試接收到的int的部分:

int player = fromServer.readInt();
if(player == PLAYER1){
 System.out.println("yy working");
}else{
  System.out.println("not working");
}

問題是我既沒有收到錯誤也沒有退出系統。由於某些原因,我使用的是ObjectStreams,而不是DataStreams。

您的代碼似乎無法幸免於int player = fromServer.readInt(); 我會在readInt()或之前調試該調用,以查看它跳出的位置。

在服務器端調用close()flush()

public static int PLAYER1 = 1;
ObjectOutputStream oos = new ObjectOutputStream(player1.getOutputStream());
oos.writeInt(PLAYER1);

oos.flush();

// OR

oos.close();

flush()將發送任何已寫入客戶端的數據。 這將使您有可能重用oos

如果您不再需要oos ,請調用close() 調用close()將刷新所有尚未發送的數據。

暫無
暫無

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

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