SOCKET中阻塞和非阻塞的区别

非阻塞模式可以理解为,执行此套接字的网络调用时,不管是否执行成功,都会立即返回。

如调用recv( )函数读取网络缓冲区中的数据时,不管是否读到数据都立即返回,而不会一直挂在此函数的调用上。

而阻塞模式为只有接收到数据后才会返回,套接字默认的会创建堵塞模式。


其他关于socket的一点基础内容:

在计算机通信领域,socket被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式,通过socket这种约定,一台计算机可以接手其他计算机的数据,也可以向其他计算机发送数据。

socket的典型应用就是Web服务器和浏览器:浏览器获取用户输入的URL(统一资源定位符,网址全部),向服务器发起请求,服务器分析接收到的URL,将对应的网页内容返回给浏览器,浏览器再经过解析和渲染,将文字、图片、视频等元素呈现给用户。

SOCKET的常见数据传输方式有两种,分别是:SOCK_STREAM和SOCK_DGRAM。

SOCK_STREAM:面向连接的数据传输方式。数据可以准确无误地到达另一台计算机,如果数据在传输中损坏或者丢失,可以重新发送,但效率相对较慢。

SOCK_DGRAM:无连接的数据传输方式。计算机只管数据传输,不作数据校验,如果数据在传输中损坏或者丢失,无法补救无法重传。QQ视频聊天和语音聊天用的就是这种模式,因为其所做的校验工作少,所以效率比SOCK_STREAM高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值