c++ - C++ 多聊天服务器
问题描述
我正在尝试在不使用线程的情况下编写多聊天服务器。我遇到了,select()
但我很难理解如何读取客户端请求并在send()
块和客户端套接字可能还没有准备好写入并且因此失去服务器并行 io 能力时立即发送它。
If(fd_isset(socket,&read_fds){
Recv()
SendMesgToRequestedClient()
}
我认为一个可能的解决方案是为每个客户端保存一个待处理消息的列表并继续发送它们,fd_isset(socket,&write_fds)
但是我可能会使用大量内存而不是节省 CPU。
解决方案
推荐阅读
- python - 在Python中按降序合并排序
- swift - 当 isRecording 为真时 Swfit、AVFoundation startRecording
- angular - 动态渲染由材质图标和自定义 SVG 图标组成的列表
- python-3.x - 列表切换问题
- r - 基于可能值的向量/列表在 tidyverse 中进行过滤
- javascript - 如果在 selectAllow 回调中不允许,FullCalendar 禁用选择日期
- ruby - Diaspora (Ruby) 运行错误,可能是 PATH 问题?“未初始化的常量 TurboDevAssets (NameError)”
- .net - 是否有像 php asrtisan 这样的点网的快捷方式
- python - django 项目页面中 password_reset_confirm 上的静态文件不加载
- javascript - 使用 React 的网页中的重复标题