socketclient:
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <errno.h>
#define MAXBUF 256
#define FILE "echo.serv"
#define NULL 0
char *msg = "Hello world!";
char buf[MAXBUF];
main()
{
struct sockaddr_un serv_addr, clnt_addr;
int sockfd;
int saddrlen, caddrlen, msglen, n;
bzero(&serv_addr, sizeof(serv_addr));
serv_addr.sun_family = AF_UNIX;
strcpy(serv_addr.sun_path, FILE);
saddrlen=sizeof(serv_addr.sun_family)+strlen(serv_addr.sun_path);
if((sockfd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0){
printf("Nemozhlyvo stvoryty' socket\n");
exit(1);
}
bzero(&clnt_addr, sizeof(clnt_addr));
clnt_addr.sun_family = AF_UNIX;
strcpy(clnt_addr.sun_path, FILE);
mktemp(clnt_addr.sun_path);
caddrlen=sizeof(clnt_addr.sun_family)+strlen(clnt_addr.sun_path);
if(bind(sockfd, (struct sockaddr*)&clnt_addr, caddrlen) < 0){
printf("Pomylka svyazuvannya socketa\n");
exit(1);
}
msglen = strlen(msg);
if(sendto(sockfd, msg, msglen, 0, (struct sockaddr*)&serv_addr, saddrlen) != msglen){
printf("Pomylka peredavannya povidomlennya\n");
exit(1);
}
if((n = recvfrom(sockfd, buf, MAXBUF, 0, NULL, 0)) < 0){
printf("Pomylka otrymannya povidomlennya\n");
exit(1);
}
printf("Echo: %s\n", buf);
close(sockfd);
unlink(clnt_addr.sun_path);
exit(0);
}
ДОДАТОК В
Тексти програм servertcp та clienttcp