【发布时间】:2025-11-28 09:45:02
【问题描述】:
在我的程序中(发布到这个question),我在客户端做了以下更改:
wretry:
cbToWrite = _stprintf(chBuf[0], TEXT("Message %d from Client"), retrycount - numberofsend + 1);
cbToWrite *= sizeof(TCHAR);
fSuccess = WriteFile(hPipe, chBuf[0], cbToWrite,
&cbWritten, &woverlapped[retrycount-numberofsend]);
这样,现在每次写入都会使用同一个缓冲区。
在这种情况下,WriteFile 在每次返回 ERROR_IO_PENDING 时都处于挂起状态。由于缓冲区的内容每次都会被覆盖,服务器应该接收到最后一条写入缓冲区的消息。但是服务器正在接收消息没有任何问题。
这是否意味着消息首先被复制到某个内部缓冲区中?我可以销毁缓冲区并期望消息被传递到服务器吗?
【问题讨论】:
标签: c++ c winapi named-pipes