【发布时间】:2019-02-06 18:14:32
【问题描述】:
如果我有tcp连接conn,如何判断conn.Read是否会阻塞?
我的理解是 Go 的 Read 使用非阻塞套接字,只有在没有数据可供读取时才会阻塞(参见 https://stackoverflow.com/a/36117724/4447365)。
但是有什么方法可以检查套接字是否没有可用数据?
这可以通过使用 POSIX read function 来完成,方法是使用为零的 count 参数调用它。
【问题讨论】:
-
您想要检查的事实意味着您可能存在设计缺陷,这很可能是 XY 问题。您能否详细说明您认为需要执行此类检查的目标?
-
对您正在从事的工作的背景一无所知正是问题所在,这也是为什么我要求您提供有关您实际尝试完成的工作的更多详细信息。
-
@rnickb:在 Go 中编写时,您没有使用 POSIX。它在 Windows(大部分)中的工作方式相同。使用 Go 时,写 Go。
-
嗯...'你可能有设计缺陷'-不是你确实有设计缺陷'。请注意,您评论调情时违反了 SO CoC。