首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >立即停止SFML TcpListener

立即停止SFML TcpListener
EN

Stack Overflow用户
提问于 2016-08-12 08:23:58
回答 1查看 156关注 0票数 0

在主线程上使用SFML TcpListener时,如何立即停止TcpListener::accept()函数?例如,如果我希望能够接收SIGINT并进行清理。要做到这一点,我需要能够让TcpListener::accept()函数返回Disconnected或Error。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-12 10:28:34

感谢Sean Cline推荐non-blocking modeselectors

作为参考,SFML/Networking中的函数(我不确定它的其他组件)在默认情况下是阻塞的,这意味着它们不会返回,直到它们完成了它们的目的(在我的例子中,接受TCP连接)。通过使用non-blocking mode,函数将立即返回,并返回其状态。对于TcpListener::accept(),如果有要接受的连接并且成功地完成了任务,它将返回sf::Socket::Status::Done。否则,它可能返回sf::Socket::Status::Disconnectedsf::Socket::Status::NotReady

至于selectors,它们允许您在单个线程上管理多个套接字,并且在您不知道哪个套接字将首先发送数据时特别有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38908045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档