首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UNIX协议(命名套接

这里主要介绍命名UNIX套接 1.什么是UNIX套接 Unix协议并不是一个实际的协议族,而是在单个主机上执行客户/服务通信的一种方式。是进程间通信(IPC)的一种方式。...它提供了两类套接:字节流套接(有点像TCP)和数据报套接(有点像UDP) UNIX数据报服务是可靠的,不会丢失消息,也不会传递出错。...2.UNIX协议特点 1)UNIX套接TCP套接相比,在同一台主机的传输速度前者是后者的两倍。...UNIX套接仅仅复制数据,并不执行协议处理,不需要添加或删除网络报头,无需计算校验和,不产生顺序号,也不需要发送确认报文 2)UNIX套接可以在同一台主机上各进程之间传递文件描述符 3)UNIX...套接传统套接的区别是用路径名表示协议族的描述 3.UNIX地址结构 #define UNIX_PATH_MAX 128 struct sockaddr_un{ sa_family_t sun_family

3K100

UNIX协议(无名套接

关于什么是UNIX套接可以参考:https://cloud.tencent.com/developer/article/1018893 这里主要介绍非命名的UNIX套接的用法。...功能:创建一个全双工的流管道 参数: domain:协议家族,为AF_LOCAL或AF_UNIX type:套接类型。可以是SOCK_STREAM或者SOCK_DGRAM。...为0 sv:返回套接对,这个是输出参数。返回的两个描述符都是可读可写的。 返回值:成功返回0,失败返回-1....注意:由于创建的每个套接都是没有名字的,这就意味着无关进程不能使用它们。 2.一个简单的例子: 父进程给子进程发送一个数据给子进程,子进程收到数据后最数据进行加一操作,再发回给父进程。...2)普通的TCP UDP套接是不能传递文件描述符的

73870
您找到你想要的搜索结果了吗?
是的
没有找到

linux网络编程之socket(十五):UNIX套接编程和socketpair 函数

UNIX套接与TCP套接相比较,在同一台主机的传输速度前者是后者的两倍。这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。... domain socket与TCP套接相比较,在同一台主机的传输速度前者是后者的两倍。...三、UNIX套接编程注意点 1、bind成功将会创建一个文件,权限为0777 & ~umask 2、sun_path最好用一个绝对路径 3、UNIX协议支持流式套接口与报式套接口 4、UNIX...流式套接connect发现监听队列满时,会立刻返回一个ECONNREFUSED,这和TCP不同,如果监听队列满,会忽略到来的SYN,这导致对方重传SYN。...即父进程持有sockfds[0] 套接进行读写,而子进程持有sockfds[1] 套接进行读写。 参考: 《Linux C 编程一站式学习》 《TCP/IP详解 卷一》 《UNP》

3.2K00

由 JVM Attach API 看跨进程通信中的信号和 Unix 套接

这篇会结合跨进程通信中的信号和 Unix 套接来看 JVM Attach API 的实现原理, 你将获得下面这些相关的知识 信号是什么 如何写一个不能被“轻易”杀死的程序 Unix 套接的用法...Docker 守护进程(Docker daemon)使用了 Unix 套接,容器的进程可以通过它与Docker 守护进程进行通信。MySQL 同样提供了套接进行访问的方式。...Unix 套接是什么?...Unix 套接更加高效,Unix 套接不用进行协议处理,不需要计算序列号,也不需要发送确认报文,只需要复制数据即可 Unix 套接是可靠的,不会丢失报文,普通套接是为不可靠通信设计的 Unix...套接的代码可以非常简单的修改转为普通套接 套接代码示例 下面是一个简单的 C 实现的套接的例子。

1K20

linux网络编程之socket(十六):通过UNIX套接传递描述符和 sendmsgrecvmsg 函数

在前面我们介绍了UNIX套接编程,更重要的一点是UNIX套接可以在同一台主机上各进程之间传递文件描述符。...1、msg_name :即对等方的地址指针,不关心时设为NULL即可; 2、msg_namelen:地址长度,不关心时设置为0即可; 3、msg_iov:是结构体iovec 的指针。   ...,而是为了传递文件描述符,所以只定义一个1节的char,其余参照前面对参数的解释可以理解。...协议才能在进程间传递文件描述符,如果想要在没有亲缘关系的进程间      * 传递,则不能用socketpair函数,要用socket()函数 */     if (socketpair(PF_UNIX...最后提醒一点,只有unix协议才能在本机进程间传递文件描述符,如果想要在没有亲缘关系的进程间传递,则不能用socketpair函数,要用socket()函 数 才行。

2.6K00

靠谱的SeLinux强制访问控制技术

套接 与网络有关的客体类别 association IPSec安全联盟 key_socket PF_KEY协议家族的套接、用于管理IPSec的密钥 netif 网络接口 eth0...用于创建用户空间接收内核事件通知的Netlink套接 netlink_route_socket 用于控制和管理网络资源路由表和IP地址的Netlink套接 netlink_selinux_socket...Netlink套接 netlink_xfrm_socket 用于获取、管理和设置 IPsec 参数的 Netlink 套接 node 代表一个 IP 地址或一段 IP 地址的主机 packet_socket...协议在用户空间执行的原始套接 rawip_socket 既不是 TCP 也不是 UDP 的 IP 套接 tcp_socket TCP 套接 udp_socket UDP 套接 unix_dgram_socket...本地机器上(unix )的 IPC 数据报套接 unix_stream_socket 本地机器上(unix )的 IPC 流套接 IPC有关的客体类别 ipc 已经没有使用了 msg 消息队列的消息

99310

听GPT 讲Rust源代码--librarystd(13)

Unix套接是一种用于在同一台计算机上的进程间通信的机制。 在stream.rs文件,主要定义了以下几个结构体: Socket:表示Unix套接的底层Socket文件描述符。...它存储了Unix套接的类型(流式套接、数据报套接等)和Socket文件描述符。 UnixStream:表示一个Unix套接的流式连接。...UnixStream结构体通过包装了Socket结构体来实现Unix套接的功能。 UnixListener:表示Unix套接的监听器。...文件定义了与Unix数据报套接相关的功能。...Unix数据报套接是一种在同一台机器上的进程间进行通信的机制。 文件的UnixDatagram结构体表示一个Unix数据报套接

17220

数据库PostrageSQL-服务器配置连接和认证

一个空值指定在任何 Unix 套接上都不监听,在这种情况只能使用 TCP/IP 套接来连接到服务器。默认值通常是/tmp,但是在编译时可以被改变。这个参数只能在服务器启动时设置。...unix_socket_group (string) 设置 Unix 套接的所属组(套接的所属用户总是启动服务器的用户)。...Windows 下没有 Unix 套接,因此这个参数与 Windows 无关。 unix_socket_permissions (integer) 设置 Unix 套接的访问权限。...这个参数只有在支持TCP_KEEPINTVL或等效套接选项的系统或 Windows 上才可以使用。在其他系统上,必须为零。在通过 Unix套接连接的会话,这个参数被忽略并总被读作零。...这个参数只有在支持TCP_KEEPCNT或等效套接选项的系统上才可以使用。在其他系统上,必须为零。在通过 Unix 套接连接的会话,这个参数被忽略并总被读作零。

4.4K20

Unix协议学习小结

Unix提供两种套接:字节流套接(类似TCP)以及数据报套接(类似UDP)。...根据《Unix网络编程卷1》,选择Unix套接有以下三点理由: 尽管使用的API类似于网络套接,但是所有的通信几乎都是发生在操作系统内核层面,往往比在同一个主机上使用TCP通信快一倍 Unix套接可以在同一主机的不同进程间传递描述符...Unix套接可以把客户的凭证(用户ID以及组ID)提供给服务器,从而能够提供额外的安全检查措施 使用方式 Unix套接对比网络套接,在适用方式上主要有以下几点不同: 1、地址 Unix套接使用...网络套接地址则是IP+Port,Unix套接地址是一个socket类型的文件在文件系统的路径,这个socket文件由bind调用创建。...但是如果向一个套接(sockfd1)写入,再从该套接总读取,就会阻塞,只能够在另一个套接(sockfd0)读取 读写可以位于同一个进程,也可以位于不同的进程,父子进程。

2.1K20

netstat命令

--protocol=family, -A: 指定要显示其连接的地址族(低级协议),该族是逗号分隔的地址族关键列表,inet、unix、ipx、ax25、netrom和ddp,这与使用--inet、...-a, --all: 显示监听和非监听套接,使用--interfaces选项显示未启动的接口。 -F: 从FIB打印路由信息,这是默认设置。 -C: 从路由缓存打印路由信息。...State: socket的状态,由于在原始套接raw模式没有状态,而且UDP通常没有使用状态,因此这一列可以留空,通常这可以是以下值之一,TCP握手与挥手的过程通常会经历这些状态。...UNIX套接 有关活动UNIX套接的信息属于以下类别: Proto: 套接使用的协议,通常是unix。 RefCnt: 引用计数,即通过此套接连接的进程。.../proc/net/unix: Unix套接信息。 /proc/net/ipx: IPX套接信息。 /proc/net/ax25: AX25套接信息。

1.2K10

听GPT 讲Rust源代码--librarystd(12)

std::os::unix::fs::PermissionsExt:该trait扩展了标准库的文件权限相关功能。它提供了对文件访问权限的操作,获取、设置文件的权限等。...而net.rs文件在此基础上提供了如下功能: 创建套接套接是网络编程中用于在计算机之间进行通信的一种机制。net.rs的函数可以创建不同类型的套接,包括TCP、UDP、UNIX等。...套接操作:net.rs文件提供了一系列函数,用于对套接进行读取、写入、重置等操作。这些操作包括发送和接收数据,设置和获取套接的选项,管理连接等。...地址与端口:在网络编程套接的通信需要使用特定的地址和端口号。net.rs的函数可以帮助用户获取和设置IP地址、端口号,还可以进行地址的解析和格式化。...套接选项:套接的选项可以影响套接的行为,比如设置套接为非阻塞模式、启用广播、开启/关闭Nagle算法等。net.rs的函数可以进行套接选项的设置和获取。

16420

iOS开发轻松学习Socket

常用的协议族有AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIXUnixSocket)、AF_ROUTE等。...协议族决定了socket的地址类型,在通信中必须采用对应的地址,AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址。...返回值:如果调用成功就返回新创建的套接的描述符,如果失败就返回INVALID_SOCKET(Linux下失败返回-1) 2: 建立连接 int result = connect(socketID, (...= 0) { NSLog(@"链接失败"); return; } NSLog(@"链接成功"); (滑动显示更多) 参数一:套接描述符 参数二:指向数据结构sockaddr的指针,其中包括目的端口和...showMsg:self.sendMsgContent_tf.text msgType:0]; self.sendMsgContent_tf.text = @""; (滑动显示更多) s:一个用于标识已连接套接口的描述

48610

Linux进程间通信方式之socket使用实例

套接的特性有三个属性确定,它们是:(domain),类型(type),和协议(protocol)。套接还用地址作为它的名字。...地址的格式随(又被称为协议族,protocol family)的不同而不同。每个协议族又可以使用一个或多个地址族定义地址格式。 1.套接 指定套接通信中使用的网络介质。...最常见的套接是AF_INET,它是指Internet网络,许多Linux局域网使用的都是该网络,当然,因特网自身用的也是它。...2.套接类型 流套接(在某些方面类似标准的输入/输出流)提供的是一个有序,可靠,双向字节流的连接。...参数指定具体协议;type 参数可被设置为 SOCK_STREAM(流式套接)或 SOCK_DGRAM(数据报式套接),protocol 字段应被设置为 0;其返回值为生成的套接描述符。

5.1K61

socket的连接超时 与 读取写入超时

socket处理时有两种超时 , 分为连接超时 和 读取/写入数据超时 1. stream_socket_client 函数的超时时间是连接超时 , 默认是php.ini的default_socket_timeout...") [,$flags = STREAM_CLIENT_CONNECT [ $context ]]]]] ) 1.remote_socket 要连接到的套接的地址。   ...对于Internet套接(AF_INET)(TCP和UDP),remote_socket参数的目标部分应包含主机名或IP地址,后跟冒号和端口号。...对于Unix套接,目标部分应指向文件系统上的套接文件。 注意:默认情况下,流将以阻塞模式打开。您可以使用stream_set_blocking($stream,1)将其切换到非阻塞模式。...注意: 要设置通过套接读取/写入数据的超时,请使用stream_set_timeout(),因为仅在连接套接时才应用超时。 5.flags 位掩码字段,可以设置为连接标志的任意组合。

4.8K30

数据库PostrageSQL-信任认证

当然,在database和 user列设置的限制仍然适用。只有当在操作系统层对进入服务器的连接有足够保护时,才应该使用这种方法。 trust认证对于单用户工作站的本地连接是非常合适和方便的。...不过,只要你利用文件系统权限限制了对服务器的 Unix 套接文件的访问,即使在多用户机器上,你也可以使用trust。...要做这些限制,你可以设置Section 19.3描述的unix_socket_permissions配置参数(可能还有unix_socket_group)。...或者你可以设置unix_socket_directories配置参数来把 Unix 套接文件放在一个经过恰当限制的目录设置文件系统权限只能有助于 Unix 套接连接。...因此,如果你想利用文件系统权限来控制本地安全,那么从pg_hba.conf移除host … 127.0.0.1 …行,或者把它改为一个非trust认证方法。

43420
领券