Java NIO read()从不抛出异常或返回-1

Java NIO read()从不抛出异常或返回-1,java,nio,Java,Nio,我已经建立了一个基本的客户端应用程序,它创建了一个套接字来连接并向我的NIO服务器发送一些字节。它打开、写入字节、关闭、程序终止 然而,在服务器端,我的选择器在这个键上旋转,无休止地返回读取的0字节,导致SocketChannel永远不会关闭 我的印象是,当客户端套接字关闭时(在客户端),会导致read()返回-1或抛出异常(在服务器端)。这是因为我在SocketChannel.read(buf)之后没有对ByteBuffer做任何操作 即使远程套接字已关闭,只要缓冲区中仍有数据,本地套接字仍处

我已经建立了一个基本的客户端应用程序,它创建了一个套接字来连接并向我的NIO服务器发送一些字节。它打开、写入字节、关闭、程序终止

然而,在服务器端,我的选择器在这个键上旋转,无休止地返回读取的0字节,导致SocketChannel永远不会关闭


我的印象是,当客户端套接字关闭时(在客户端),会导致read()返回-1或抛出异常(在服务器端)。

这是因为我在SocketChannel.read(buf)之后没有对ByteBuffer做任何操作


即使远程套接字已关闭,只要缓冲区中仍有数据,本地套接字仍处于就绪状态

请编辑您的问题并包含一个显示问题的选项。