Poco:如何从另一个线程中止阻塞套接字操作

时间:2012-01-25 11:04:19

标签: c++ poco-libraries

Poco中是否有正确的方法可以从另一个线程中止阻塞I / O操作?

2 个答案:

答案 0 :(得分:0)

由于执行I / O的线程会被阻塞,我没有看到任何直接的方法来取消它,除了讨厌并明确地杀死线程。但是不建议

答案 1 :(得分:0)

是的,你可以调用Socket :: shutdown()。之后发生的事情取决于你的平台,当recv()返回时,Poco会抛出适当的异常。

但是你不必开始阻止I / O,因为有Poco::Net::Socket::setBlocking(bool)来启用或禁用阻塞行为。或者,即使您想要阻止,您仍然可以使用Poco::Net::Socket::setSendTimeout()Poco::NetSocket::setReceiveTimeout()

来定义超时