我有一个发送分块传输编码数据的服务器。我使用 InternetReadFile 读取数据,但 InternetReadFile 在读取第一个块后以 12004 失败。我使用提琴手 (Wireshark) 来截取接收到的数据。Wireshark 显示第二个块,但 InternetReadFile API 失败。
示例代码:
CString totalbuffer ;
While ( 1 )
{
char recv [ 10 ] = '\0' ;
DWORD dwBytesRead = 0 ;
if ( InternetReadFile ( httpSocket.hReq , recv, 10 , &dwBytesRead ) )
{
recv[ dwBytesRead] = '\0' ;
totalbuffer += recv ;
printf ( " received buffer : %s" , recv ) ;
return 1 ;
}
else
{
printf ( " InternetReadFile failed with : %d" , GetLastError ( ) ) ;
return 0 ;
}
};
WireShark 显示:
HTTP/1.1 200 正常
传输编码:分块
日期:2014 年 9 月 18 日星期四 14:16:16 GMT
服务器:CHND
3
好的\n
3
命令
客户端只读取前 3 个字节的块。当我尝试读取下一个 3 字节块“CMD”时,它不起作用。
请帮助客户端应该做哪些必要的更改?还是服务器端需要处理一些额外的事情?