Poco 中是否有适当的方法来中止来自另一个线程的阻塞 I/O 操作?
问问题
833 次
2 回答
0
由于执行 I/O 的线程将被阻塞,因此我看不到任何直接的方法可以取消它,除了讨厌并明确地杀死线程。但是不建议这样做
于 2012-01-25T11:11:35.123 回答
0
是的,您可以调用 Socket::shutdown()。之后会发生什么取决于您的平台,当 recv() 返回时 Poco 将抛出适当的异常。
但是你不必从阻塞 I/O 开始,因为有Poco::Net::Socket::setBlocking(bool)来启用或禁用阻塞行为。或者,即使您想进行阻塞,您仍然可以使用Poco::Net::Socket::setSendTimeout()或Poco::NetSocket::setReceiveTimeout()定义超时
于 2014-10-02T02:54:45.003 回答