Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # define errormsg(x) { puts(x); exit(1); }
- int sendpkt(unsigned int timeout, char *ip, int port)
- {
- int sock;
- sock = socket(AF_INET, SOCK_DGRAM, 0);
- if(sock == -1) errormsg("Errore nella creazione del socket\n");
- struct sockaddr_in myaddr;
- myaddr.sin_family = AF_INET;
- myaddr.sin_port = htons(port);
- myaddr.sin_addr.s_addr = inet_aton(ip, &myaddr.sin_addr); // oppure: htonl(ip);
- char *senddata = malloc(sizeof(char) * 1024);
- memset(senddata, 0, 1024); // generizzazione di bzero
- char *recvdata = malloc(sizeof(char) * 1024);
- memset(recvdata, 0, 1024);
- int success;
- success = sendto(sock, senddata, 1024, 0, &myaddr, sizeof(myaddr));
- if(success == -1) errormsg("Invio fallito\n");
- signal(SIGALRM, failcase);
- alarm(timeout);
- success = recvfrom(sock, recvdata, 1024, 0, &myaddr, sizeof(myaddr));
- if(success == -1) errormsg("Ricezione fallita\n");
- int i = 1;
- int counter = 0;
- while(i < 1024)
- {
- if(*(recvdata + i) != *(senddata + i))
- counter++;
- i++;
- }
- return counter;
- }
- int failcase(int sign)
- {
- if(sign == SIGALRM)
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement