高级编程简略笔记

1.非阻塞模式Socket 编程


从第一感觉上来讲,非阻塞模式没有阻塞模式清晰。阻塞模式效率太低下,非阻塞模式也没有提高多少。但是非阻塞模式的思想很重要。

非阻塞模式:调用函数后立即返回,不等待结果。-->异步

阻塞模式:等待结果再返回。-->同步


非阻塞模式之所以看起来不清晰,主要是需要由许多while语句调用send与recv。遇到SOCKET_ERROR如果是错误是WSAEWOULDBLOCK,需要continue,如果是其他错误也要看情况处理,比如connect时遇到WSAEISCONN时,代表了链接成功,就要退出while循环。


总结:许多while,不够高效。


2.Select模型Socket 编程

周而复始的检查,把不就绪的剔除读、写集合(队列),返回就绪的套接字数量。


相关重要内容:
1、 FD_ISSET:判断该套接字是否集合中,在则就绪,不在,说明因为未就绪被select踢了;
2、FD_SET:将套接字加入到待检查的集合(队列)。

总结:一个大while,每次把需要检查的套接字加入到待select检查读、写集合,然后FD_ISSET判断是否在集合中,在则就绪。

3. Event模型Socket 编程

看课本看的迷迷糊糊的,看些文章参考下吧。
msdn博客上的篇文章,对着几种都做了概述,并且感觉很清晰。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值