gpt4 book ai didi

c - setsockopt()中为SO_RCVBUF指定的新值何时生效?

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:44 26 4
gpt4 key购买 nike

我的查询与 setsocketopt() api 中的“SO_RCVBUF”选项有关。setsockopt()中为SO_RCVBUF指定的新值何时生效?

我正在测试 TCP/IP 的流量控制,下面是我的环境。客户端程序是一个缓慢的阅读器,它只有一个套接字。为了测试流量控制,我在建立连接之后和接收数据之前将 SO_RCVBUF 的值减少到 5000 字节。我的期望是,我的服务器程序在发送 5000+ 字节后应该等待客户端读取。但是服务器程序发送数据直到 ~60000 字节。之后服务器程序将等待客户端读取。一旦客户端读取了 ~55000 字节,我就会看到接收缓冲区的新值(5000 字节)得到了利用。

这是预期的吗?我想 setsocketopt() 的效果应该是立竿见影的。接收缓冲区的初始值在 setsocketopt() 之后不应有任何影响。

问候,普拉山

最佳答案

我认为您应该在调用 connect() 之前设置 SO_RCVBUF,因为那是分配缓冲区的时间。之后调用它可能根本没有效果,或者如您观察到的那样延迟效果。

关于c - setsockopt()中为SO_RCVBUF指定的新值何时生效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23341043/

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