相关疑难解决方法(0)

套接字的DataInputStream的“可用”

我在客户端上有以下代码:

DataInputStream dis = new DataInputStream(socketChannel.socket().getInputStream());
while(dis.available()){
     SomeOtherClass.method(dis);
}
Run Code Online (Sandbox Code Playgroud)

但是available()不断返回0,尽管流中有可读数据。因此,在要读取的实际数据完成之后,空数据将传递到另一个要读取的类,这将导致损坏。

经过一番搜索;我发现available()在与套接字一起使用时这是不可靠的,我应该从流中读取前几个字节以实际查看是否有数据可解析。

但就我而言 我必须将DataInputStream我从套接字获得的引用传递给我无法更改的其他类。

是否可以从中读取一些字节DataInputStream而不破坏它,或者有其他建议?

java sockets datainputstream

4
推荐指数
1
解决办法
9273
查看次数

标签 统计

datainputstream ×1

java ×1

sockets ×1