其他分享
首页 > 其他分享> > socket读写事件就绪条件

socket读写事件就绪条件

作者:互联网

转自:https://murphypei.github.io/blog/2019/08/socket-ready

1.准备好读

引用《Unix网络编程》中的解释:

当满足下列条件之一时,一个套接字准备好读:

2.准备好写

当满足下列条件之一时,一个套接字准备好写:

//针对第一条有疑问,发送缓冲区是将数据send到内核缓冲区,那么这个过程为什么不会阻塞呢?有系统调用的吧?需要具体理解send socket的过程,

【目前的理解是,写操作不会阻塞,只是说明发送区有数据发送,而无需等待数据。】

【居然看错了,第一条说的是发送缓冲区中可用空间字节数,而不是已存字节数。这是为了保证应用程序输出的数据能写到发送缓冲区,然后send返回,之后再系统调用写到内核缓冲区吧,只要发送有空间,内核那边应该没问题,或者是有回调告诉内核还剩多少空间。】

3.理解

https://blog.csdn.net/majianfei1023/article/details/45788591

通俗的解释一下,缓存区我们当成一个大小为 n bytes的空间,那么:

 

标签:返回,缓存,socket,发送缓冲区,读写,阻塞,接字,就绪,该套
来源: https://www.cnblogs.com/BlueBlueSea/p/14808177.html