首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态选择服务器

动态选择服务器
EN

Stack Overflow用户
提问于 2013-07-08 23:57:54
回答 3查看 103关注 0票数 0

我正在编写一个单线程选择服务器,用户可以在其中动态添加侦听套接字。问题是,如果有人想要添加一个侦听套接字,服务器不会选择这个新套接字,直到其他套接字中的一个发生了什么。

我想到的一个解决办法是向列表中添加一个假套接字,每当添加新的listen套接字时,我都可以发出信号,以强制服务器将新的listen套接字添加到列表中。这个解决方案对我来说似乎有点“老生常谈”,我想知道其他人是否有任何想法。

EN

回答 3

Stack Overflow用户

发布于 2013-07-09 00:18:27

是的,但是为了添加另一个监听套接字,我想你必须首先连接到服务器,然后告诉它添加另一个套接字。

此外,您可能需要在套接字调用中设置超时值。这样,如果服务器不忙于响应请求,它可以在超时时执行一些低优先级的活动,例如删除陈旧的文件等。

票数 0
EN

Stack Overflow用户

发布于 2013-07-09 02:41:23

你关于假套接字的想法还不错。我将其重命名为control socket,因为您可以使用它向服务器发送不同类型的命令或请求。而且它将比select的超时轮询更实时。

控制套接字的类型也可以与其他套接字不同。例如,使用UDP或unix域套接字向本地服务器程序发送控制消息将比使用TCP套接字更容易。

票数 0
EN

Stack Overflow用户

发布于 2013-07-09 02:54:17

您可以使用self-pipe trick。Alex B发布了一篇关于它的good answer,你真的应该看看它。

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

https://stackoverflow.com/questions/17531026

复制
相关文章

相似问题

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