gpt4 book ai didi

sockets - 冲洗 socket 是什么意思?

转载 作者:行者123 更新时间:2023-12-03 11:05:25 26 4
gpt4 key购买 nike

除了如何像文件一样读取和写入套接字之外,我对套接字知之甚少。我对使用套接字选择器有一些了解。我不明白为什么你必须刷新一个套接字,那里实际发生了什么?这些位只是卡在内存中的某个地方,直到它们被推开?我在网上阅读了一些关于套接字的内容,但都是非常抽象和高层次的。

这里究竟发生了什么?

最佳答案

写入网络套接字和发送数据涉及一定的开销。如果每次字节进入套接字时都发送数据,那么对于每个实际数据字节,您最终会得到 40 多个字节的 TCP header 。 (当然,假设您使用的是 TCP 套接字。其他套接字将具有不同的值)。为了避免这种低效率,套接字维护一个本地缓冲区,通常有点超过 1000 字节。当该缓冲区被填满时,一个 header 会包裹在数据周围,并将数据包发送到其目的地。

在许多情况下,您不需要立即发送每个数据包;如果您正在传输文件,如果没有文件的最终数据,早期数据可能没有任何用处,因此这很有效。但是,如果您需要强制立即发送数据,则刷新缓冲区将发送任何尚未发送的数据。

请注意,当您关闭套接字时,它会自动刷新所有剩余数据,因此在您关闭之前无需刷新。

关于sockets - 冲洗 socket 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/914286/

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