You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非阻塞SocketChannel能否读取缓冲数据同时阻止客户端继续发送?

问题描述

我遇到一个场景需求:在仅负责读取数据的服务器中,当收到关闭请求时,需要做到两点:

  • 阻止客户端继续发送更多数据
  • 尽可能处理完缓冲区中已存在的数据

我试过用shutdownInput()和socket.close()方法,它们确实能阻止后续读取操作,但会直接丢弃缓冲区里的内容。

shutdownInput()本来是我的首选方案,但官方文档明确说明,调用这个方法之后再调用read()会返回-1。不过我在Apache NIFI的一段代码中看到,似乎调用shutdownInput()之后仍然可以读取数据。


内容的提问来源于stack exchange,提问作者lujop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:45:36