xml地图|网站地图|网站标签 [设为首页] [加入收藏]

智能硬件

当前位置:美高梅游戏网站 > 智能硬件 > unix domain socket示例一(SOCK_DGRAM)

unix domain socket示例一(SOCK_DGRAM)

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-09-03 16:12

   unix domain socket 是IPC通信的一种方式,可用于与管理进程间通信,同时由和网络socket统一,所以很好管理,使用还是比较多。现举个例子:

图片 1

   server.c

tu.png

    

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <unistd.h>
 4 #include <stdlib.h>
 5 #include <sys/types.h>
 6 #include <sys/socket.h>
 7 #include <sys/un.h>
 8 #include <stddef.h>
 9 
10 #define SRC_ADDR "/var/run/uds_test.socket"
11 
12 int main (int argc, char **argv)
13 {
14     int sockfd;
15     struct sockaddr_un src;
16     int ret;
17 
18     unlink (SRC_ADDR);
19     sockfd = socket (AF_UNIX, SOCK_DGRAM, 0);
20     if (sockfd < 0) {
21         perror ("create socket failed");
22         exit (EXIT_FAILURE);
23     }
24 
25     memset (&src, 0, sizeof (src));
26     src.sun_family = AF_UNIX;
27     strcpy (src.sun_path, SRC_ADDR);
28     int len;
29     len = offsetof (struct sockaddr_un, sun_path) +
30         sizeof (SRC_ADDR);
31 
32     if (bind (sockfd, (struct sockaddr *)&src, len) < 0) {
33         perror ("bind socket failed");
34         exit (EXIT_FAILURE);
35     }
36 
37     size_t size = 0;
38     char buf[BUFSIZ] ={''};
39     for (;;) {
40         size = recvfrom (sockfd,buf, BUFSIZ,0,
41                 NULL, NULL);
42 
43         if (size > 0)
44             printf ("recv: %sn", buf);
45 
46     }
47 
48     return 0;
49 }

  client.c

本文由美高梅游戏网站发布于智能硬件,转载请注明出处:unix domain socket示例一(SOCK_DGRAM)

关键词:

上一篇:Nginx 提醒 No package nginx available

下一篇:没有了