用c语言实现本地socket进程间通信
时间: 2023-10-25 12:08:11 浏览: 96
用C语言实现socket通信
要在 C 语言中实现本地 Socket 进程间通信,可以使用以下步骤:
1. 创建一个 Socket
```
int server_fd = socket(AF_UNIX, SOCK_STREAM, 0);
```
2. 绑定 Socket 到一个本地地址
```
struct sockaddr_un addr;
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
strcpy(addr.sun_path, "mysocket");
unlink(addr.sun_path);
bind(server_fd, (struct sockaddr*)&addr, sizeof(addr));
```
这里的 `mysocket` 是你自己定义的一个本地地址,它会被用于在进程间传递数据。
3. 监听 Socket
```
listen(server_fd, SOMAXCONN);
```
4. 接收连接请求
```
int client_fd = accept(server_fd, NULL, NULL);
```
这个函数会阻塞,直到有一个客户端连接到这个 Socket。
5. 发送和接收数据
使用 `send` 和 `recv` 函数来发送和接收数据:
```
char buf[1024];
recv(client_fd, buf, sizeof(buf), 0);
send(client_fd, "Hello, client!", 14, 0);
```
6. 关闭 Socket
```
close(client_fd);
close(server_fd);
unlink(addr.sun_path);
```
这里的 `unlink` 函数用于删除之前绑定的本地地址。
以上就是在 C 语言中实现本地 Socket 进程间通信的基本步骤,你可以根据自己的需求进行相应的修改和扩展。
阅读全文