靠!实在是受不了wininet的异常了。准备花一个月的时间用SOCKET整一个GET和POST的模块出来。起码SOCKET要比wininet要可靠的多。

crystal_heart 2008-03-25 11:52:14
RT
...全文
197 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jameshooo 2008-03-27
  • 打赏
  • 举报
回复
异步哪有不起线程的,看看IE,需要多少个线程啊,除了浏览器控件使用的线程,moniker需要独立线程,wininet需要独立线程,xmlhttp需要独立线程,脚本引擎更是独立的线程,即使楼主自己用socket来做异步也一样需要多线程。
crystal_heart 2008-03-27
  • 打赏
  • 举报
回复
是异步接收出的异常,经常就莫名其妙的给抛出来。
而且wininet在背后起了若干个线程,不爽。
jameshooo 2008-03-27
  • 打赏
  • 举报
回复
消息循环也能实现异步,但是socket如何在单线程环境下使用异步?同步IO就不是异步了,重叠IO也是多线程。
arong1234 2008-03-27
  • 打赏
  • 举报
回复
个人觉得遇到异常要么是环境不好(如服务器连不上),要么是你代码有问题
异常是狠正常的事情,你换socket虽然可能遇到的不是异常,但是还是会遇到不同种类的失败。
如果不是看见异常就找到原因解决它,而是赶快换个接口,我估计你还得换接口。当所有接口都失败时,你怎么办?

好好调试,不要以为一换万事顺,哪有这么便宜的。
crystal_heart 2008-03-27
  • 打赏
  • 举报
回复
异步 <> 必须使用多线程
scq2099yt 2008-03-26
  • 打赏
  • 举报
回复
支持楼主
jameshooo 2008-03-26
  • 打赏
  • 举报
回复
应该是用法没用对,可以提出问题一起解决。
myy 2008-03-26
  • 打赏
  • 举报
回复
我一直用wininet,也觉得很好啊。

socket整更没必要,开源库大把大把的...
Dr.Yao 2008-03-26
  • 打赏
  • 举报
回复
楼主可以把问题拿出来大家帮你研究研究
datablader 2008-03-26
  • 打赏
  • 举报
回复
HOHO。楼主,我也用过wininet,感觉还可以啊。你再花一个月时间搞下wininet,结果可能比你自己做会有更好效果。wininet底层也是用了socket,不过是封装了一下而已。你也不是需要做同样的事情嘛。
Twarz 2008-03-26
  • 打赏
  • 举报
回复
听到wininet的异常我也碰到过
是不是HttpOpenRequest的问题?哈哈,而且是UNICODE的问题
const TCHAR acceptTYPE[] = _T("*/*");
HINTERNET hFileRequest = HttpOpenRequest(hConnect,_T("GET"),strFile,_T("HTTP/1.1"),NULL,&acceptTYPE,
INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_RELOAD,0);
有异常,而改为下面就好了
const TCHAR* acceptTYPE[] = {_T("*/*"),0};
HINTERNET hFileRequest = HttpOpenRequest(hConnect,_T("GET"),strFile,_T("HTTP/1.1"),NULL,acceptTYPE,
INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_RELOAD,0);

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧