社区
网络编程
帖子详情
重叠I/O如何处理成千上万的SOCKET连接
yzhgr
2007-02-02 08:50:39
对于大量连接时是不是定义一个SOCKET数组,同时定义一个OVERLAPPED数组和事件数组,每连一个SOCKET就分配一个SOCKET,一个OVERLAPPED,和一个EVENT,而对于这些SOCKET的处理只要开一个独立的I/O线程就可以了吗?在一个线程里处理这么多的连接事件好象不是太合理吧?!那它的高性能怎么体现出来的呢?
不晓得我的理解是不是错了,请高人指点!
...全文
324
3
打赏
收藏
重叠I/O如何处理成千上万的SOCKET连接
对于大量连接时是不是定义一个SOCKET数组,同时定义一个OVERLAPPED数组和事件数组,每连一个SOCKET就分配一个SOCKET,一个OVERLAPPED,和一个EVENT,而对于这些SOCKET的处理只要开一个独立的I/O线程就可以了吗?在一个线程里处理这么多的连接事件好象不是太合理吧?!那它的高性能怎么体现出来的呢? 不晓得我的理解是不是错了,请高人指点!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yzhgr
2007-02-02
打赏
举报
回复
谢谢楼上的回复!
尘雨
2007-02-02
打赏
举报
回复
一般规模的应用,通常监听套接字只有一个,只负责接受连接,分配一个套接字会一个客户端连接。其后在这个客户端套接字上进行数据的重叠IO,recv或者send,每一个Recv或者Send都要有对应的overlapped和event,所以事件数组的数量不一定和客户段套接字数字的数量相等,比如有10个客户端连接上来,就有10个客户端套接字对应,但是在每个邪套接字上可能会有多个IO,每个IO都将对应一个事件
在一个线程里处理多个客户段套接字的IO,可以一次性得投递多个客户端的IO,因为是非堵塞,并设置相对应的事件,然后再等待这个事件数组,就在这个线程里处理,或者新开线程来处理数据。
对于成千上万个客户端套接字上的IO,由于一次等待事件最大为64,所以高效率维护套接字数组和事件数组就成了一个瓶颈,当然可以新开线程来增加64个的限制,但是模型会变得复杂而难于处理。
这样的需求建议还是完成端口好一些
心中那自由的世界
2007-02-02
打赏
举报
回复
重叠IO无法处理这么大的访问量,WINDOW网络编程里面第八章讲得很清楚了.完成端口也随不了上万的访问吧?如果上万,估计要做分布式处理了.
第3章 windows套接字模型
通过ioctl
socket
函数可以将套接字设置为非阻塞模式,从而允许应用程序立即返回并
处理
其他任务,而无需等待I/O操作完成。 总的来说,理解并熟练掌握这些Windows套接字I/O模型对于编写高效、可扩展的网络应用程序至关...
完成端口IOCP实现高并发服务器——一篇非常好的学习资源
完成端口(IOCP,即I/O Completion Port)是Windows操作系统提供的一个高效的I/O模型,尤其适用于需要
处理
大量并发
连接
的服务器应用程序。相较于传统的多线程或多进程模型,完成端口具有以下显著优点: 1. **高效...
第4章 ICOP与可伸缩网络程序
IOCP是一种高效的I/O模型,它允许操作系统内部的
重叠
机制
处理
大量的网络请求,而不会像WSAAsyncSelect和WSAEventSelect那样受到并发请求的限制。一位IT从业者分享了其在T公司编写邮件服务器性能测试程序的经验,证实...
IOCP完成端口详解.pdf
通过本文档的学习,我们可以了解到IOCP作为一种高效的异步I/O
处理
机制,在
处理
大量并发
连接
方面具有明显的优势。它不仅简化了网络编程的复杂度,还提高了服务器的响应速度和
处理
能力。在实际应用中,合理配置工作者...
IOCP完成端口详解
它能够显著提升应用程序在
处理
多个并发
连接
时的性能,尤其适用于需要同时管理
成千上万
个
连接
的场景。 **核心概念:** 1. **完成端口**:实质上是一个通知队列,用于存储已完成的I/O操作。操作系统负责将完成的I/O...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章