UNIX 域套接字会溢出吗?

UNIX 域套接字会溢出吗?

当您使用 socat 创建一个 UNIX 套接字并向其发送数据,但没有另一个 socat 实例连接到该套接字时,会发生什么情况?

如果将大量数据写入 UNIX 套接字但从未读取,会发生什么情况?是否有缓冲区溢出?是环形缓冲的吗?

答案1

Unix 套接字是可靠的。如果读者不读,作者就会阻塞。如果套接字是数据报套接字,则每次写入都会与一次读取配对。如果套接字是流套接字,内核可能会在写入器和读取器之间缓冲一些字节,但是当缓冲区已满时,写入器将阻塞。如果读取器在读取缓冲区之前关闭连接,则数据永远不会被丢弃,除非缓冲数据。

相关内容