char serverpath[]="/tmp/serverpath";
void unix_socket_server(char *spath)
{
char buffer[BUFSIZE];
struct sockaddr_un servaddr;
struct sockaddr_un from;
if ((sock = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0)
return ;
memset(&servaddr, 0, sizeof(servaddr));
memset(&from, 0, sizeof(from));
servaddr.sun_family = AF_UNIX;
strcpy(servaddr.sun_path, spath);
unlink(spath);
len = sizeof(servaddr.sun_family) + strlen(servaddr.sun_path);
if (bind(sock, (const struct sockaddr *) &servaddr,len) < 0)
return;
int fromlen = sizeof(from);
int rlen = recvfrom(sock, buffer,BUFSIZE, 0, (struct sockaddr *)&from,(socklen_t *)&fromlen);
...
}
unix_socket_client(char *path, char *data, int datalen)
{
struct sockaddr_un servaddr;
int sock = socket(AF_UNIX, SOCK_DGRAM, 0);
if(sock < 0)
return;
memset(&servaddr,(int)NULL, sizeof(servaddr));
servaddr.sun_family = AF_UNIX;
strcpy(servaddr.sun_path,serverpath);
int nbytes = sendto(sock, data,dataLen, 0, (struct sockaddr *) &(servaddr),sizeof(servaddr));
}