Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <unistd.h>
- #include "utils.h"
- #include "conn.h"
- //Librerie per i socket:
- #include <sys/socket.h>
- #include <sys/un.h>
- #define DIM_BUFFER 256
- int main()
- {
- int fdSkt;
- //Creazione socket - si usano (quasi) sempre questi parametri
- RETURN_SYSCALL(fdSkt, socket(AF_UNIX, SOCK_STREAM, 0), "Errore creazione socket - fdSkt")
- //Connect
- //sckAddr deve essere uguale a quello del server
- struct sockaddr_un sckAddr;
- strncpy(sckAddr.sun_path, SOCKNAME, 108);
- sckAddr.sun_family = AF_UNIX;
- //il socket potrebbe non aver ancora fatto la listen (per via dello scheduler)
- //il prof nelle correzioni mette solamente: SYSCALL(connect(fdSkt, (struct sockaddr *) &sckAddr, sizeof(sckAddr)), "")
- while(connect(fdSkt, (struct sockaddr *) &sckAddr, sizeof(sckAddr)) == -1)
- {
- if(errno != ENOENT)
- {
- perror("Errore connect - fdSkt");
- exit(EXIT_FAILURE);
- }
- }
- while (1)
- {
- char buffer[DIM_BUFFER];
- memset(buffer, '\0', DIM_BUFFER);
- SCANF_STRINGA(buffer);
- if(strncmp(buffer, "quit", strlen("quit")) == 0)
- break;
- int lenghtBuffer = strlen(buffer)+1;
- SYSCALL(writen(fdSkt, buffer, lenghtBuffer), "Errore: writen(fdSkt, buffer, strlen(buffer)+1)")
- SYSCALL(readn(fdSkt, buffer, lenghtBuffer), "Errore: writen(fdSkt, buffer, strlen(buffer)+1)")
- printf("%s\n", buffer);
- }
- SYSCALL(close(fdSkt), "Errore close - fdSkt")
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement