我在我的Java应用程序中使用TCP Socket。我试图用readInt()
方法从某个设备接收字节数据。TCP Socket在Java中接收时挂起
如果我从设备获得4个字节,此方法工作正常。但是如果我得到少于4个字节,或者没有,则readInt()
挂起。它被阻止并且不会返回。如果没有数据可以接收,它应该抛出EOFException
异常,但它是挂起的。
代码:
DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
DataInputStream din = new DataInputStream(socket.getInputStream());
int res = din.readInt();
确实,阻塞是一种自然行为。 – 2010-10-29 13:43:27