Java 如何检查是否有来自TCP套接字的传入数据而不接收它?

Java 如何检查是否有来自TCP套接字的传入数据而不接收它?,java,sockets,tcp,Java,Sockets,Tcp,基本上,我需要做的是获取一个通知,然后使用类DataInputStream和方法read()继续接收数据 问题是DataInputStream没有一个方法来检查是否有要读取的内容,使用read()方法进行测试会干扰对read()的进一步调用 我可以通过读取一个字节并向其添加更多数据来进行测试,但我想看看是否有更优雅的解决方案 DataInputStream没有检查是否有内容可读取的方法 是的。您错过了available()方法,但它并不总是返回非零,这取决于您所连接的对象 看看PushbackI

基本上,我需要做的是获取一个通知,然后使用类DataInputStream和方法read()继续接收数据

问题是DataInputStream没有一个方法来检查是否有要读取的内容,使用read()方法进行测试会干扰对read()的进一步调用

我可以通过读取一个字节并向其添加更多数据来进行测试,但我想看看是否有更优雅的解决方案

DataInputStream
没有检查是否有内容可读取的方法

是的。您错过了
available()
方法,但它并不总是返回非零,这取决于您所连接的对象


看看
PushbackInputStream

你完全正确!我完全忽略了这一点,这是第一个解释的方法!我想我累了谢谢