我试着将win32_asynch_io.cpp中的第1023行开始
WSABUF iov;
iov.buf = result->message_block ().rd_ptr ();
iov.len = bytes_to_write;
initiate_result = ::WSASend (reinterpret_cast<SOCKET> (result->handle ()),
&iov,
1,
&bytes_written,
0, // flags
result,
0);
换成他下面的
initiate_result = ::WriteFile (result->handle (),
result->message_block ().rd_ptr (),
bytes_to_write,
&bytes_written,
result);
重新编译ACE后,可以写文件,但是Sender会在ACE_TMAIN中的
while (success > 0 && !done)
// Dispatch events via Proactor singleton.
success = ACE_Proactor::instance ()->handle_events ();
处报错。
而且最成问题的是写只能写第一次收到的内容。
附上源码,wishel 有空帮我看看
[ 本帖最后由 rotar 于 2009-11-2 19:26 编辑 ] |