地址是这里: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.   

    我没有看过啊m_Data不就是数据吗消灭沙发
      

  2.   

    struct JobItem
    是最后延伸到用户层的数据,可能这么说有点模糊,就是说从SOCKET数据中逐层剥离最后剩余的数据.
    在原程序中作者并没有使用所有有关源码中出现的Job,包括类型及处理.所以你的ProcessJob不执行
    这个例子如果要用的话,可以直接重载ProcessPackage或到NotifyDataRecieve(具体函数名称记不清了)处理.建议还是把数据加入一个数据队列,然后用另外的线程来处理.
    简单说,JobItem包括ProcessJob是作者最后给出的例子,不具有通用性,至少你接收到的数据很多情况下是不会按CString来处理的.这个例子相当的经典.作者很无私
      

  3.   

    我现在可以处理ProcessJob了,我想问一下,加入到Job和用ProcessPackage直接处理好处在什么地方?
      

  4.   

    ProcessJob是在WorkerThread里处理的
    而ProcessPackage是在IOWorkerThread里处理的劝你还是把整个程序都看明白先
      

  5.   


    我明白是这样处理,但是IOWorkerThread,WorkerThread处理不太了解。麻烦你详细说一下,不好意思,IOCP学的时间太短。