当前位置:  开发笔记 > 程序员 > 正文

UNIX域套接字:是否存在"忙"信号?

如何解决《UNIX域套接字:是否存在"忙"信号?》经验,为你挑选了1个好方法。

可以在客户端通过一个UNIX域套接字(AF_UNIX型)推送数据用信号发送,如果接收端无法与负载应付?

要么

必须在套接字顶部有一个Client-Server协议来处理流量控制吗?



1> jtchitty..:

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

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

因此,由于所有类型的UNIX域套接字都保证了按顺序传送,接收器可以在忙于执行其他操作时停止接收,并且当没有可用的缓冲区空间时将自动阻止发送方(或将通知没有更多的缓冲区空间,如果它们请求对其套接字进行非阻塞操作).然后,当接收者再次开始接收时,发送者将被允许发送更多.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有