gpt4 book ai didi

sockets - 套接字如何不丢失到达的数据?

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

典型的套接字程序示例如下:

while(1){
data = socket.recv()
//do some work
}

因为你不知道包什么时候到达,它必须阻塞等待直到从监听端口得到一些数据,假设如果程序在收到另一端的命令后开始繁重的工作,在工作期间,另一个包到达,但是因为在那一刻你正在做工作,你没有监听端口,你可能会错过包,无论你处理工作有多快。

那么套接字如何处理所有数据而不会丢失呢?

最佳答案

操作系统有receive buffer保存已从网络接收但尚未接收的数据包 recv()由应用程序编辑。如果该缓冲区填满,数据包将丢失。你不必在 recv()在数据包到达时调用,但您应该确保经常调用它以防止缓冲区溢出。

关于sockets - 套接字如何不丢失到达的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18319238/

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