在异步调用WinINet中,调用InternetOpen方法时,如果将参数5写为NTERNET_FLAG_ASYNC(道理上正确)时,会导致数据接收不完整的现象。测试服务器返回2046字节的数据,但客户端仅仅接收到1535字节数据。
调用事例:
错误方式:
m_hInternet = InternetOpenA("winks",
INTERNET_OPEN_TYPE_DIRECT,
NULL,
NULL,
INTERNET_FLAG_ASYNC);
正确方式:
m_hInternet = InternetOpenA("winks",
INTERNET_OPEN_TYPE_DIRECT,
NULL,
NULL,
0);
调用事例:
错误方式:
m_hInternet = InternetOpenA("winks",
INTERNET_OPEN_TYPE_DIRECT,
NULL,
NULL,
INTERNET_FLAG_ASYNC);
正确方式:
m_hInternet = InternetOpenA("winks",
INTERNET_OPEN_TYPE_DIRECT,
NULL,
NULL,
0);