当我用socket时,当接收数据时停在那里了,我用什么方法让socket停下来???

xinyi 2001-12-28 10:35:22
当我的程序用socket接收数据时,由于对方没有发数据,我的程序就停在那里了,我用什么方法让socket中止,让程序得到响应???
...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
code_cold 2001-12-28
  • 打赏
  • 举报
回复
Help me to up
http://www.csdn.net/Expert/topic/444/444853.shtm
jason_sc 2001-12-28
  • 打赏
  • 举报
回复
那是因为你的SOCKET是阻塞方式的,如果你是WINDOWS的用户,你可以通过WSAAssyncSelect函数注册相应的网络事件,变成非阻塞方式,当有网络事件来了,调用相应的处理,如读:RECVFROM等。如果,你坚持阻塞的话,建议你用一个单独的线程来读,这样你读不到数据的话,只是阻塞一个线程,对你的主线程没有影响。
happyboy007 2001-12-28
  • 打赏
  • 举报
回复
采用异步模式,不应该有这个问题
sam1111 2001-12-28
  • 打赏
  • 举报
回复
用shutdown函数
kingzai 2001-12-28
  • 打赏
  • 举报
回复
最好将接收写成一个工人线程,由主界面进行控制
zzh 2001-12-28
  • 打赏
  • 举报
回复
你在接收的时候不要使用同步模式,采用异步模式进行接收,当收到数据的时候,由SOCKET发送消息给你的应用程序,然后再进行操作。
zhuang094 2001-12-28
  • 打赏
  • 举报
回复
为什么要采用阻塞方式。采用异步非阻塞的方式,你可用轮询,也可用消息。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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