6 java sockets bufferedinputstream
我正在使用a BufferedInputStream来读取套接字.的BufferedInputStream内容如下:
socketInput.read(replyBuffer, 0, 7);
Run Code Online (Sandbox Code Playgroud)
它是由实例化的
socketInput = new BufferedInputStream(mySocket.getInputStream());
Run Code Online (Sandbox Code Playgroud)
mySocket 被定义为 private Socket mySocket;
mySocket 被实例化 mySocket = new Socket(ipAddress, port);
我已经确认mySocket已连接到我的设备.我可以将数据发送到我的设备; 但是,我没有收到我的设备,原因不明,但这不是问题.
BufferedInputStream如果它没有读取任何数据,我希望我在说100ms之后返回.可以BufferedInputStream设置这样做吗?现在,它无限期地阻止.
使用缓冲流从套接字读取通常是一个坏主意,正是因为这个原因:如果它没有看到足够的数据来填充其内部缓冲区(它将大于 7 个字符!),它将永远等待没有办法让它超时。直接使用SocketInputStream,问题就消失了。