(又名AF_LOCAL,在POSIX1.g标准中指定),它代表地址家族(addressfamily):UNIX。其他比较旧的系统可能会将地址家族表示成域(domain)或协议家族(protocolfamily),并使用其缩写PF而非AF。类似地,AF_LOCAL(在2000~2001年标准化)将代替AF_UNIX 面向网络的 家族名:AF_INET 或者地址家族:因特网。另一个地址家族AF_INET...
SOCK_DGRAM是基于UDP的,专门用于局域网,基于广播;SOCK_STREAM 是数据流,一般是tcp/ip协议的编程;SOCK_DGRAM是数据报,是udp协议网络编程 【AF_INET和AF_UNIX】 1、AF_INET不仅可以用作本机的跨进程通信,同样的可以用于不同机器之间的通信,其就是为了在不同机器之间进行网络互联传递数据而生。而AF_UNIX则只能用于...
协议族决定了socket的地址类型,在通信中必须采用对应的地址,如 AF_INET 决定了要用ipv4 地址(32 位的)与端口号(16 位的)的组合、AF_UNIX 决定了要用一个绝对路径名作为地址。 type:指定 socket 类型。常用的 socket 类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET 等等(socket 的类型...
2、SOCK_DGRAM 报文字节套,类似UDP的报文方式,理论上会导致错乱、丢失等风险,只是AF_UNIX性能很高,风险概率较小。SOCK_DGRAM的应用场合很少,因为流式套接字在本地的连接时间可以忽略,而SOCK_DGRAM发送接收都需要携带对方的本地地址,所以效率并没有提高。 3、SOCK_SEQPACKET SOCK_SEQPACKET提供一个顺序确定的,可靠的...
SOCK_DGRAM -- UDP类型,不保证数据接收的顺序,非可靠连接; SOCK_RAW -- 原始类型,允许对底层协议如IP或ICMP进行直接访问,不太常用。 protocol-- 通常赋值"0",由系统自动选择。 2.2 bind() 原型:int bind(int sockfd, const struct sockaddr* myaddr, socklen_t addrlen) ...
type:指定socket类型。常用的socket类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等等(socket的类型有哪些?)。 protocol:故名思意,就是指定协议。常用的协议有,IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议(这...
内核会根据协议族(如AF_INET)找到对应的协议族处理结构体(pf_inet对于IPv4)。 然后,根据socket类型(如SOCK_STREAM)和协议编号(通常是0,表示自动选择),内核会选择具体的协议实现(如TCP)。 创建套接字实例: 内核会为新的socket分配一个套接字实例(struct socket)。 这个实例中包含了操作这个socket所需要的所有方法...
domain参数代表地址族,我们最常⽤的是TCP/IP协议通信中使⽤的是AF_INET,在有些情况下建⽴的socket仅限于同⼀台设备上进程间的通信,此时可以使⽤AF_UNIX或者AF_LOCAL,可以是⾯向连接的(类型 SOCK_STREAM),也可以是⽆连接的(类型SOCK_DGRAM)。两种类型都很可靠,原因是没有连接两个进程的外部...
AF_UNIX, AF_LOCAL:用于本地通信,Unix Domain Socket AF_INET:IPv4协议栈 AF_INET6:IPv6协议栈 还有其他一些参看官方文档 type参数定义通信语义 SOCK_STREAM:提供一种有序的,可靠的,双向的,基于连接的字节流 SOCK_DGRAM:支持数据报文(非连接的,不可靠的具有固定的最大字节长度的消息) ...
unix domain socket 是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC: Inter-Process Communication),它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain Socket有SOCK_DGRAM或SOCK_STREAM两种工作模式,类似于UDP和TCP,但是面向...