UDP套接字的SOCK_DGRAM名字来自于单词“datagram”(数据报)。
sock = socket(AF_UNIX, SOCK_DGRAM,0); addr.sun_family = AF_UNIX;strcpy(addr.sun_path,"/tmp/afu_dgram");intn = sendto(sock,"HELLO\n",6,0, (sockaddr*)&addr,sizeof(addr));printf("send data\n"); close(sock);return0; } github源代码 使用dgram,接收端: #include<stdio.h>#includ...
const char* server_file = "/tmp/ipc_udp_server.sock"; int main(int argc,char** argv) { int socket_fd = socket(AF_UNIX,SOCK_DGRAM,0); if (socket_fd < 0) { perror("socket"); return -1; } struct sockaddr_un addr; memset(&addr,0,sizeof(addr)); addr.sun_family = AF_UNIX;...
SOCK_DGRAM是基于UDP的,专门用于局域网,基于广播;SOCK_STREAM 是数据流,一般是tcp/ip协议的编程;SOCK_DGRAM是数据报,是udp协议网络编程 【AF_INET和AF_UNIX】 1、AF_INET不仅可以用作本机的跨进程通信,同样的可以用于不同机器之间的通信,其就是为了在不同机器之间进行网络互联传递数据而生。而AF_UNIX则只能用于...
AF_UNIX与AF_LOCAL是一样的,只是历史遗留原因。 有SOCK_STREAM、SOCK_DGRAM、SOCK_SEQPACKET三种工作模式 1、SOCK_STREAM 流字节套,类似TCP,由于socket发送缓冲区的缘故,多次write数据会被缓冲区整合为一次底层send。禁用TCP Nagle算法的方式对AF_UNIX无效。
内核会根据协议族(如AF_INET)找到对应的协议族处理结构体(pf_inet对于IPv4)。 然后,根据socket类型(如SOCK_STREAM)和协议编号(通常是0,表示自动选择),内核会选择具体的协议实现(如TCP)。 创建套接字实例: 内核会为新的socket分配一个套接字实例(struct socket)。 这个实例中包含了操作这个socket所需要的所有方法...
* (3)AF_UNIX Unix域 * (4)AF_ROUTE 路由套接字 * (5)AF_KEY 密钥套接字 * (6)AF_UNSPEC 未指定 * * type确定socket的类型,常用类型如下: * (1)SOCK_STREAM 有序、可靠、双向的面向连接字节流套接字 * (2)SOCK_DGRAM 长度固定的、无连接的不可靠数据报套接字 ...
pmmanager_fd=socket(AF_UNIX, SOCK_DGRAM,0); if(pmmanager_fd==-1) { perror("cannot create pmmanager fd."); } unlink(pmmanager); memset(&pmmanager_addr,0,sizeof(pmmanager_addr)); pmmanager_addr.sun_family=AF_UNIX; strncpy(pmmanager_addr.sun_path, pmmanager,sizeof(pmmanager_addr.sun_path...
4 sockfd = socket(AF_UNIX, SOCK_DGRAM, 0);5 addr.sun_family = AF_UNIX;6 strcpy(addr.sun_path, "/etc/local/local.sock");7 bind(sockfd, (struct sockaddr *)&addr, sizeof(struct sockaddr_un));这⾥对某些语句不成功的处理省略,需要注意的是当套接字程序调⽤bind() 函数时,会在⽂...
type:socket类型,常用的socket类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET...