gpt4 book ai didi

sockets - UNIX 域套接字 : is there such a thing as a "busy" signal?

转载 作者:行者123 更新时间:2023-12-02 10:46:56 25 4
gpt4 key购买 nike

如果接收端无法应对负载,通过 UNIX 域套接字(AF_UNIX 类型)推送数据的客户端是否可以收到信号?

或者

套接字之上必须有一个客户端-服务器协议(protocol)来处理流量控制吗?

最佳答案

您绝对可以对 UNIX 域套接字进行阻塞发送。如果接收方的接收缓冲区已满,或者未完成(未传送)的发送套接字缓冲区的数量过高,则发送方将阻塞。

SOCK_STREAM UNIX 域套接字的工作方式类似于 TCP 套接字。 SOCK_DGRAM UNIX 域套接字的工作方式与 UDP 类似,不同之处在于 UNIX 域数据报保证按顺序传送,而 UDP 套接字可以重新排序或删除。 (此外,UNIX 域套接字可用于在进程之间发送文件描述符和传递用户凭据,而这两者都无法通过 TCP、UDP 或管道来完成。)

因此,由于所有类型的 UNIX 域套接字都保证按顺序传递,因此接收方在忙于做其他事情时可以停止接收,而当没有更多可用缓冲区空间时(或如果他们在套接字上请求非阻塞操作,则会收到没有更多缓冲区空间的通知)。然后,当接收方再次开始接收时,发送方将被允许发送更多内容。

关于sockets - UNIX 域套接字 : is there such a thing as a "busy" signal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478975/

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