在异步调用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);
本文介绍在使用WinINet进行异步调用时的一个常见问题:若InternetOpen方法中设置INTERNET_FLAG_ASYNC标志,则可能导致数据接收不完整。通过对比正确与错误的调用方式,帮助开发者避免这一陷阱。
4169

被折叠的 条评论
为什么被折叠?



