Tag: socat

如何使用SOCK_DGRAM制作双向unix域套接字?

我正在尝试编写一个简单的Unix数据报服务器/客户端,并且遇到了一些问题。 我想要的是一个服务器,它监听数据报套接字并将收到的每封邮件的回复发送给原始发件人。 我决定首先尝试使用socat作为“服务器”并在C中编写客户端。我正在运行这样的socat: socat UNIX-DGRAM:/tmp/test.socket,fork EXEC:echo 根据我的理解,这应该监听/tmp/test.socket并回复使用相同字符串收到的所有内容? 然后我有一个看起来像这样的客户端程序(为清楚起见,删除了错误检查): int s = socket(AF_UNIX, SOCK_DGRAM, 0); struct sockaddr_un sa; sa.sun_family = AF_UNIX; strcpy(sa.sun_path, “/tmp/test.socket”); const char *data = “Testing data”; int err = sendto(s, data, strlen(data), 0, (struct sockaddr *)(&sa), sizeof(struct sockaddr_un)); printf(“Sent!\n”); unsigned char *buffer = malloc(BUFFER_LENGTH); struct sockaddr_storage recv_sa; int recv_sa_len = 0; int recv_len […]