首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ IO/多路TCP和POSIX线程

C++ IO/多路TCP和POSIX线程
EN

Stack Overflow用户
提问于 2015-04-22 12:05:28
回答 1查看 761关注 0票数 0

我必须开发一个简单的C++命令行客户机/服务器聊天应用程序。这个应用程序必须提供一个基本的多部分聊天室实现。可以将IO/Multiplexing (select() syscall)与POSIX线程结合起来吗?我的意思是创建一个TCP服务器,它使用select()处理多个客户端,当客户端想与另一个客户机聊天时,servewr创建一个单独的线程,该线程使用IO/Multiplexing (select() syscall)来处理两个客户机之间的通信。这是个好主意吗我怎么能不这样做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-22 12:52:44

对建筑的粗野尝试..。

将应用程序构造为两组线程(一组可能仅由一个线程组成)。

一个集合考虑TCP连接,每个TCP连接被分配给集合中的一个线程,线程只是永久地轮询分配给它的连接(传入消息)和从逻辑队列(传出消息)轮询一个(每个线程)。

另一组则关注逻辑/会话。每个会话都分配给一个特定的线程。每个线程只是永远运行,从-网络队列(传入消息)轮询(每个线程)。

网络线程集接收消息并将它们发送到正确的逻辑队列,假设有一种将连接映射到内部逻辑会话的方法。它轮询其逻辑队列,以获取并发送传出消息。

网络线程的数目是绑定的,它不取决于连接的数量。

逻辑线程集,接收来自其队列中的网络的请求,并在给定的会话状态下处理这些请求,并且(可能)将消息回发到被发送出去(由网络线程发送)。

逻辑线程的数目是绑定的,它不取决于会话的数量。

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

https://stackoverflow.com/questions/29797026

复制
相关文章

相似问题

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