FD_ZERO(&fds_r);
FD_SET(sock,&fds_r);
status=select(sock+ 1, &fds_r, NULL, NULL, &timeout); win和linux下代码如上。 select成功之后,我读取内容。问题是:对方给我发送内容之前,他自己要先处理一些事情,然后给我发送消息,我才能select到消息。
但是,对方处理事情的时间不一定。所以我的这个timeout时间不好确定,如果我设置成了无限等待。请问,如果对方有出现类似socket关闭的情况,我这里的是不是程序就一直停在select上了。有没有什么好的策略解决。
解决方案 »
- 关于LPCTSTR,刚才看别人的帖子发现的一个问题
- VC2008下的checkbox,算bug吗?
- 在socket下进行http通信遇到的问题
- 在CDC中利用DrawText写出了文本,怎样才能够去掉
- class 语法的问题?
- 求助设计一个对话框界面,嵌入一张图片着对话框界面大小变化而变化,有例子的一定给分。
- ActiveX ControlWizard中的对话框中添加控件的Caption的字体太小,该如何改?
- 列表控件的图标排列
- socket通讯效率问题请教
- 游戏开发高级游戏研发技术群,欢迎您的加入
- 简单问题请教
- 用axWindowsMediaPlayer1做视频播放器怎么能让视频跟播放器一样大小
建议设为非阻塞模式,select设定超时值+while循环。
select的返回值可以反映出是正常,超时,出错,再做相应的处理。
select的返回值可以反映出是正常,超时,出错,再做相应的处理。======================
这个怎么反应出来?
死循环里面设置select?