[英]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.