TransmitFile发文件时TRANSMIT_FILE_BUFFERS参数导致的错误
本帖最后由 kevin_done_analyse 于 2011-10-27 21:39:05 编辑 初学网络,在写一个简易的文件服务器,使用完成端口,TransmitFile发送文件。为了先发送文件长度,使用了LPTRANSMIT_FILE_BUFFERS参数。具体代码类似:
//建立LPTRANSMIT_FILE_BUFFERS结构
TRANSMIT_FILE_BUFFERS transmit_buffer;
transmit_buffer.Head = FileLength_Char;
transmit_buffer.HeadLength = 4;//4字节的文件长
//发送
BOOL nRetVal = TransmitFile(obj->sclient, //客户端的连接Socket
tempFile.m_hFile,
0,
TCPFILESEND_BUFFER_SIZE,
&(obj->ol), //重叠IO
&transmit_buffer, //指定在发送文件数据前,先发送的数据
TF_USE_KERNEL_APC | TF_WRITE_BEHIND );