Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/socket.h>
- #include <sys/types.h>
- #include <sys/un.h>
- #include <unistd.h>
- #include <errno.h>
- #define MAXLEN 128
- int main (int argc, char *argv[]){
- struct sockaddr_un server;
- int serverfd, clientfd;
- socklen_t addrsize = sizeof(struct sockaddr_un);
- char buff[MAXLEN], *path;
- if (argc < 2){
- printf("Error: %s [MESSAGE]\n", argv[0]);
- return 1;
- }
- if ((serverfd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0){
- printf("Error \"%s\" in socket()\n", strerror(errno));
- exit(1);
- }
- puts("socket()");
- server.sun_family = AF_UNIX;
- path = strcpy(server.sun_path, "/home/myhome/Dropbox/Sources/C/sub");
- printf("[DEBUG]Address bound at %s\n", path);
- if ((bind(serverfd, (struct sockaddr*)&server, addrsize)) < 0){
- printf("Error \"%s\" in bind()\n", strerror(errno));
- exit(1);
- }
- puts("bind()");
- if ((listen(serverfd, 1)) < 0){
- printf("Error \"%s\" in listen()\n", strerror(errno));
- exit(1);
- }
- if ((clientfd = accept(serverfd, NULL, &addrsize)) < 0){
- printf("Error \"%s\" in accept()\n", strerror(errno));
- exit(1);
- }
- write(clientfd, argv[1], strlen(argv[1]));
- read(clientfd, buff, sizeof(buff));
- puts(buff);
- close(clientfd);
- close(serverfd);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement