进程1:
#include <stdlib.h>
#include<stdio.h>
#include<sys/socket.h>
#include <sys/types.h>
#include <string.h>
#include <sys/un.h>
#define UNIX_domain "/tmp/UNIX.domain"
int main()
{
int listenfd;
listenfd=socket(AF_UNIX,SOCK_STREAM,0);
struct sockaddr_un srvaddr;
srvaddr.sun_family=AF_UNIX;
strncpy(srvaddr.sun_path,UNIX_domain,sizeof(srvaddr.sun_path)-1);
unlink(UNIX_domain);
bind(listenfd,(struct sockaddr*)&srvaddr,sizeof(srvaddr));
listen(listenfd,1);
int comfd;
struct sockaddr_un cltaddr;
int len;
len=sizeof(cltaddr);
comfd=accept(listenfd,(struct sockaddr*)&cltaddr,&len);
write(comfd,"123456",6);
close(comfd);
close(listenfd);
unlink(UNIX_domain);
}
进程2:
#include <stdlib.h>
#include <stdio.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <string.h>
#define UNIX_domain "/tmp/UNIX.domain"
int main()
{
int fd;
fd=socket(AF_UNIX,SOCK_STREAM,0);
struct sockaddr_un addr;
addr.sun_family=AF_UNIX;
strcpy(addr.sun_path,UNIX_domain);
connect(fd,(struct sockaddr*)&addr,sizeof(addr));
char buff[20];
read(fd,buff,20);
printf("recv data is %s",buff);
close(fd);
}