IOCP中CompletionKey(完成键)与Overlapped(重叠结构体)的区别

BOOL GetQueuedCompletionStatus(
  HANDLE                   CompletionPort,       // 完成端口句柄
  LPDWORD               lpNumberOfBytes,    // 传送数据字节数
  PULONG_PTR         lpCompletionKey,     // 完成键
  LPOVERLAPPED *  lpOverlapped,           // 重叠结构
  DWORD                   dwMilliseconds         // 超时毫秒数
);

 

GetQueuedCompletionStatus函数中有两个参数lpCompletionKeylpOverlapped

lpCompletionKey被称为完成键,传递的数据被称为单句柄数据,数据应该是与每个socket句柄对应

lpOverlapped被称为重叠结构,传递的数据被称为单IO数据,数据应该与每次的操作WSARecv、WSASend等相对应;

     一个重叠结构体》》》》对应 《《《《  一次I/O重叠操作

          一个完成键  》》》》 对应 《《《《  一个客户端socket句柄

你可能感兴趣的:(IOCP中CompletionKey(完成键)与Overlapped(重叠结构体)的区别)