请教一下各位,我初学iocp模型,工作线程通常负责发送接收的操作,
工作线程是怎么区分客户端任务种类的,
我设想的是有个数组储存每个客户端信息,
客户端开始的时候会告知服务器客户端的任务,并把任务信息也保存再信息数组里面,
等到以后收到客户端请求以后去这个数组里面去寻找客户端信息,然后确定客户端任务,
但是这样操作有个问题就是工作线程每次收到客户端信息都会去数组里面查询一遍客户信息,当数组特别大的时候每次都去这个大数组里面查询信息效率就很低,请问各位有什么别的方便快捷的方法来确定客户端任务没,非常感谢
CreateIoCompletionPort函数的第三个参数,传一个指针,用来关联一个“客户端”。
GetQueuedCompletionStatus函数会得到这个指针,就直接知道了是哪个“客户端”
你的问题是“数组太大时,查询信息效率就很低”,那么解决办法是不用“数组”,而是用“树形表”或“散列表”来贮存客户信息。C++模板类中有set、map等可以选用