用C语言编写一个uds通信的例子
时间: 2023-08-30 21:04:14 浏览: 161
好的,这里是一个简单的基于C语言的uds通信例子:
首先,我们需要定义uds的地址和socket。我们可以用以下代码:
```
#define SOCK_PATH "/tmp/uds_socket"
int sockfd;
struct sockaddr_un addr;
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
if (sockfd == -1) {
perror("socket error");
exit(EXIT_FAILURE);
}
memset(&addr, 0, sizeof(struct sockaddr_un));
addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, SOCK_PATH, sizeof(addr.sun_path) - 1);
```
然后,我们需要连接到服务器。我们可以用以下代码:
```
if (connect(sockfd, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)) == -1) {
perror("connect error");
exit(EXIT_FAILURE);
}
```
现在,我们可以发送和接收数据了。以下是一个简单的发送和接收数据的例子:
```
char buffer[1024];
memset(buffer, 0, 1024);
/* send data */
strcpy(buffer, "Hello, server!");
if (send(sockfd, buffer, strlen(buffer), 0) == -1) {
perror("send error");
exit(EXIT_FAILURE);
}
/* receive data */
memset(buffer, 0, 1024);
if (recv(sockfd, buffer, 1024, 0) == -1) {
perror("recv error");
exit(EXIT_FAILURE);
}
printf("Received message: %s\n", buffer);
```
最后,我们需要关闭和删除socket。我们可以用以下代码:
```
close(sockfd);
unlink(SOCK_PATH);
```
这样就完成了一个简单的uds通信的例子。
阅读全文