gpt4 book ai didi

linux - SOCK_DGRAM 和 SOCK_STREAM 在上下文 AF_UNIX 套接字中的用途是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:11 26 4
gpt4 key购买 nike

据我了解,SOCK_DGRAM 和 SOCK_STREAM 对应于使用 INET 地址系列完成的无连接和面向连接的网络通信。

现在我正在尝试学习 AF_UNIX 套接字以在同一主机上运行的进程之间执行 IPC,并且我看到我们需要将 sub_socket_type 指定为 SOCK_DGRAM 或 SOCK_STREAM。对于 AF_UNIX 套接字,我无法理解指定子套接字类型的目的是什么。

谁能帮助理解 SOCK_DGRAM 和 SOCK_STREAM 在 AF_UNIX 套接字上下文中的重要性?

最佳答案

碰巧 TCP 既是一种流协议(protocol),又是面向连接的,而 UDP 是一种数据报协议(protocol),而且是无连接的。然而,有可能有一个面向连接的数据报协议(protocol)。这就是 block 特殊文件(或 Windows Mailslot)。

(你不能有一个无连接的流协议(protocol),它没有意义,除非 /dev/null 算)

SOCK_DGRAM 标志并不表示套接字是无连接的,它表示套接字是面向数据报的。

面向流的套接字(以及字符特殊文件,如/dev/random 或/dev/null)提供(或使用,或两者)连续的字节序列,没有固有结构。通过解释流的内容来提供结构。一般来说,流的两端只有一个进程。

一个面向数据报的套接字,提供(或消费或两者)大小有限且自包含的短消息。一般来说,服务器可以使用 recvfrom(它为调用者提供一个发送回复的地址)从多个客户端接收数据报,并使用指定该地址的 sendto 回复它们。

关于linux - SOCK_DGRAM 和 SOCK_STREAM 在上下文 AF_UNIX 套接字中的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51008595/

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