socket本地通信服务端

#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <sys/un.h>
#include <unistd.h>
#include <stddef.h>
int main()
{
	unlink("temp");
	int lfd = socket(AF_UNIX, SOCK_STREAM, 0);
	perror("socket");
	struct sockaddr_un addr;
	addr.sun_family = AF_UNIX;
	strcpy(addr.sun_path, "temp");
	socklen_t l = sizeof(addr);
	int sock_len = offsetof(struct sockaddr_un, sun_path) + strlen(addr.sun_path);
	bind(lfd, (struct sockaddr*)&addr, sock_len);
	perror("bind");
	listen(lfd, 128);
	perror("listen");

	char buf[1000];
	int cfd = accept(lfd, (struct sockaddr*)&addr, &l);
	while (1)
	{
		bzero(buf, 1000);
		recv(cfd, buf, 1000, 0);
		perror("recv");
		send(cfd, buf, 1000, 0);
		perror("send");
	}
	
	return 0;
}

注意要绑定的本地文件必须不存在

posted @ 2022-02-06 13:39  hellozhangjz  阅读(63)  评论(0)    收藏  举报