gpt4 book ai didi

c - Linux网络编程。 "read([...])"幕后发生了什么?

转载 作者:IT王子 更新时间:2023-10-29 01:27:25 26 4
gpt4 key购买 nike

ssize_t read(int fd, void * data, size_t count); 究竟做什么?

在 web 中的很多文章中经常写到,它尝试从或描述符 fd 中读取。这意味着什么? “它尝试”:/这样的套接字是如何设计的?操作系统是否缓冲传入的消息?还是读取时间关键操作?我的意思是,如果我不及时“阅读”,是否有可能丢失某些包裹?

编辑:

我想知道为什么这不阻塞。然后我想知道为什么 read(...) 除了我在代码片段中看到的所有函数之外还有其他参数。最后我意识到它是read(...) 而不是recv(...)。不幸的是它仍然像我预期的那样工作。有趣的是我们的 ascostaivie tohuhgts 如何与我们合作。 (请勿编辑)我不得不承认示例德语对读者的影响更大...

最佳答案

Linux 将缓冲到达连接的 TCP 套接字的任何数据,默认情况下最大为几兆字节。您不必在数据到达的同一时间读取。

netstat -tn 将显示每个已连接套接字的 Recv-QSend-Q,这是每个套接字中排队的字节数方向。

关于c - Linux网络编程。 "read([...])"幕后发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13298177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com