症状:发送和接收到的文件数据内容不一致
解决方法:用dbgview显示发送接收的包序列,发送包序列不一致
问题原因:发送端是异步发送,没有等待发送完毕。
接收端虽然是异步接收,但是会等待一个数据包接收完。
ui = pentry_points->pVirtualChannelWrite(popen_handle,
imsg_write,
sizeof(TYPE_PACKET),
NULL);
// 等待写操作完成
if ( WaitForSingleObject(hwait_writen, INFINITE) == WAIT_FAILED )
{
DisplayError(TEXT("WaitForSingleObject"));
}
case CHANNEL_EVENT_WRITE_COMPLETE:
{
// 写操作完成,设置通知事件
if ( SetEvent(hwait_writen) == 0)
{
DisplayError("SetEvent");
}
}