Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在UNIX套接字上下文中,SOCK_DGRAM和SOCK_流的用途是什么?_Linux_Sockets_Ipc - Fatal编程技术网

Linux 在UNIX套接字上下文中,SOCK_DGRAM和SOCK_流的用途是什么?

Linux 在UNIX套接字上下文中,SOCK_DGRAM和SOCK_流的用途是什么?,linux,sockets,ipc,Linux,Sockets,Ipc,我知道,SOCK_DGRAM和SOCK_STREAM对应于使用INET Address系列进行的无连接和面向连接的网络通信 现在我正在尝试学习如何在同一台主机上运行的进程之间执行IPC,我发现我们需要将sub_socket类型指定为SOCK_DGRAM或SOCK_STREAM。我无法理解对于AF_UNIX套接字,指定子套接字类型的目的是什么 任何人都可以帮助理解SOCK_DGRAM和SOCK_STREAM在AF_UNIX套接字环境中的重要性吗?TCP既是一种流协议,也是面向连接的,而UDP是一种

我知道,SOCK_DGRAM和SOCK_STREAM对应于使用INET Address系列进行的无连接和面向连接的网络通信

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


任何人都可以帮助理解SOCK_DGRAM和SOCK_STREAM在AF_UNIX套接字环境中的重要性吗?

TCP既是一种流协议,也是面向连接的,而UDP是一种数据报协议,并且是无连接的。然而,有一个面向连接的数据报协议是可能的。这就是块特殊文件(或Windows邮箱)的含义

(不过,您不能使用无连接流协议,除非
/dev/null
计算在内,否则它没有意义)

标志
SOCK_DGRAM
并不意味着套接字是无连接的,它意味着套接字是面向数据报的

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


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

TCP既是一种流协议,也是面向连接的,而UDP是一种数据报协议,无连接。然而,有一个面向连接的数据报协议是可能的。这就是块特殊文件(或Windows邮箱)的含义

(不过,您不能使用无连接流协议,除非
/dev/null
计算在内,否则它没有意义)

标志
SOCK_DGRAM
并不意味着套接字是无连接的,它意味着套接字是面向数据报的

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


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

这个问题也让我困惑了一段时间,但正如Ben所说,套接字类型是SOCK\u STREAM或SOCK\u DGRAM,它们都意味着访问客户端和服务器之间的进程间通信的相同方式。在domain AF_UNIX下,这一点都没有区别。

这个问题也让我困惑了一段时间,但正如Ben所说,套接字类型是SOCK_STREAM或SOCK_DGRAM,它们都意味着访问客户端和服务器之间进程间通信的相同方式。在域AF_UNIX下,它没有一点区别。

块特殊文件与字符特殊文件。你能解释一下在使用AF_UNIX套接字的IPC环境中这两个文件(块和字符特殊文件)的功能吗?块特殊文件与字符特殊文件。你能解释一下这两个文件的功能吗(块和字符特殊文件)在IPC上下文中使用AF_UNIX套接字?