我试着将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 编辑 ] |