地址是这里:http://www.codeproject.com/KB/IP/iocp_server_client.aspx
我相信很多人都看过了。
现在有些不解:
1:struct JobItem
{
JobType m_command;
unsigned int m_ClientID;
CString m_Data;
};
其中m_Data到底指的是什么?
2:如何响应ProcessJob(JobItem *pJob,IOCPS* pServer)函数,其运行的原理是什么?
我加入AddJob以后,ProcessJob并没有响应,不解。
3:如何进行业务逻辑处理?多谢大哥解答一下,分不够的话,我再加。
我相信很多人都看过了。
现在有些不解:
1:struct JobItem
{
JobType m_command;
unsigned int m_ClientID;
CString m_Data;
};
其中m_Data到底指的是什么?
2:如何响应ProcessJob(JobItem *pJob,IOCPS* pServer)函数,其运行的原理是什么?
我加入AddJob以后,ProcessJob并没有响应,不解。
3:如何进行业务逻辑处理?多谢大哥解答一下,分不够的话,我再加。
是最后延伸到用户层的数据,可能这么说有点模糊,就是说从SOCKET数据中逐层剥离最后剩余的数据.
在原程序中作者并没有使用所有有关源码中出现的Job,包括类型及处理.所以你的ProcessJob不执行
这个例子如果要用的话,可以直接重载ProcessPackage或到NotifyDataRecieve(具体函数名称记不清了)处理.建议还是把数据加入一个数据队列,然后用另外的线程来处理.
简单说,JobItem包括ProcessJob是作者最后给出的例子,不具有通用性,至少你接收到的数据很多情况下是不会按CString来处理的.这个例子相当的经典.作者很无私
而ProcessPackage是在IOWorkerThread里处理的劝你还是把整个程序都看明白先
我明白是这样处理,但是IOWorkerThread,WorkerThread处理不太了解。麻烦你详细说一下,不好意思,IOCP学的时间太短。