Java套接字-通过对象流传递int?

Java套接字-通过对象流传递int?,java,sockets,stream,Java,Sockets,Stream,我正在研究Java流, 在服务器端,我试图通过objectOutputStream发送int,并在客户端接收它。然而,我没有收到任何在客户端 这是服务器端发送int public static int PLAYER1 = 1; new ObjectOutputStream(player1.getOutputStream()).writeInt(PLAYER1); 以下是接收该int的客户端: fromServer = new ObjectInputStream(socket.getInputS

我正在研究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,而不是DataStream。

您的代码似乎在调用
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()
将刷新所有尚未发送的数据。

这些片段表明您正在为每条消息创建新的流。不要那样做。这充其量是浪费,最坏也行不通。在套接字的生命周期中使用相同的流。