gpt4 book ai didi

c - 如何判断套接字缓冲区是否已满?

转载 作者:太空狗 更新时间:2023-10-29 16:36:55 25 4
gpt4 key购买 nike

如何判断读取套接字缓冲区是否已满或写入套接字缓冲区是否为空?

有没有一种方法可以在没有系统调用的情况下获取套接字缓冲区的状态?

更新:这个怎么样:我想在读取套接字缓冲区已满或写入套接字缓冲区为空时获得回调或信号。这样我就可以停止处理以允许在线路上发生更多 I/O,因为在线路上发送数据时受 I/O 限制始终是一个问题。

select() 调用是检查读取缓冲区中是否有内容的方式。 不是满的时候(我想)。

最佳答案

使用 select 和零超时轮询文件描述符 - 如果 select 表明它是可写的,则发送缓冲区未满。

(哦...没有系统调用。不,没有。)

附录:

为了响应您更新的问题,您可以在 TCP 套接字上使用两个 ioctl:SIOCINQ 返回接收缓冲区中未读数据的数量,以及 SIOCOUTQ 返回发送队列中未发送的数据量。不过,我认为这些没有任何异步事件通知,这会让您不得不进行轮询。

关于c - 如何判断套接字缓冲区是否已满?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1803215/

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