PF_UNIX (也称作 PF_LOCAL ) 套接字族用来在同一机器上的提供有效的进程间通讯.Unix 套接字可以是匿名的(由 socketpair(2)创建), 也可以与套接字类型文件相关联. Linux 还支持一种抽象名字空间, 它是独立于文件系统的. 有效的类型有: SOCK_STREAM 用于面向流的套接字, SOCK_DGRAM 用于面向数据报的套接字...
建议:对于socketpair与socket的domain参数,使用PF_LOCAL系列,而在初始化套接口地址结构时,则使用AF_LOCAL. 例如:z = socket(PF_LOCAL,SOCK_STREAM,0); adr_unix.sin_family = AF_LOCAL;反馈 收藏
* 传递,则不能用socketpair函数,要用socket()函数 */if(socketpair(PF_UNIX,SOCK_STREAM,0,sockfds)<0)ERR_EXIT("socketpair");pid_t pid;pid=fork();if(pid==-1)ERR_EXIT("fork");/* 如果是父进程打开的文件描述符,子进程可以共享 * 这里演示的是子进程打开的文件描述符通过封装的函数传给父进程 *...
struct sockaddr_un srv_addr; listen_fd=socket(PF_UNIX,SOCK_STREAM,0); if(listen_fd<0) { perror("cannot create communication socket"); return 1; } //set server addr_param srv_addr.sun_family=AF_UNIX; strncpy(srv_addr.sun_path,UNIX_DOMAIN,sizeof(srv_addr.sun_path)-1); unlink(UNIX...
connect_fd=socket(PF_UNIX,SOCK_STREAM,0); if(connect_fd<0){ perror("cannot creat socket"); return-1; } srv_addr.sun_family=AF_UNIX; strcpy(srv_addr.sun_path,UNIX_DOMAIN); //connect server ret=connect(connect_fd,(struct sockaddr*)&srv_addr,sizeof(srv_addr)); ...
if ((listenfd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) ERR_EXIT("socket"); unlink("test_socket");//解决服务端再次创建时,出现:bind: Address already in use //UNIX域协议套接字 //0表示内核自动选择UNIX域协议套接字协议 struct sockaddr_un servaddr; ...
int serv_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //将套接字和IP、端口绑定 struct sockaddr_in serv_addr; memset(&serv_addr, 0, sizeof(serv_addr)); //每个字节都用0填充 serv_addr.sin_family = AF_INET; //使用IPv4地址 ...
(1)socket 阻塞模式源码分析,4-9小结 会从 socket(AF_INET,SOCK_STREAM,0) 这一行代码开始分析socket是如何创建出来的,在创建的过程中内核做了哪些事, 初始化了那些队列或者数据。以及如何完成socket和sock的关联。 (2)搞清楚socket的回调函数是在哪里初始化的,是怎么通过回调函数实现内核空间和用户空间切换的?
intfd = socket(AF_UNIX, SOCK_STREAM,0); // 绑定监听 char*socket_path ="./server.sock"; strcpy(serun.sun_path, socket_path); bind(fd, serun, ...); listen(fd,128); while(1){ //接收新连接 conn = accept(fd, ...);
domain指明所使用的协议族,通常为PF_INET,表示互联网协议族(TCP/IP协议族);type参数指定socket的类型: SOCK_STREAM 或SOCK_DGRAM,Socket接口还定义了原始Socket(SOCK_RAW),允许程序使用低层协议;protocol通常赋值"0"。 Socket()调用返回一个整型socket描述符,你可以在后面的调用使用它。