【发布时间】:2020-11-28 07:43:01
【问题描述】:
我有一些 c# 代码在 windows 上运行了很长时间,但在 dotnet 核心转换后在 linux 上运行时突然失败。
特定代码涉及手动打开套接字连接并通过将套接字临时设置为非阻塞来实现超时,以通过 Connect 方法,轮询套接字直到它连接,但也有一个超时退出路径。
当传递非阻塞连接方法时,会抛出一个异常,即“如果我是阻塞套接字,我会在这里阻塞”(技术上称为“EAGAIN”,字符串“资源暂时不可用”是绑)。我抓住了那个异常,如果它是“WouldBlock”,忽略异常并继续前进(轮询连接完成或超时发生)。在 linux 上,即使我收到此错误代码,我也会以某种方式获得“资源暂时可用”。
【问题讨论】:
标签: linux sockets networking .net-core