Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Wait for server answer
- struct sockaddr_in sender_addr;
- socklen_t sender_addr_len;
- int ready = 0;
- int timeouts = 0;
- while(1) {
- timeout.tv_sec = 2;
- timeout.tv_usec = 0;
- FD_ZERO(&socket_rdy);
- FD_SET(server.sockfd, &socket_rdy);
- ready = select(server.sockfd + 1, &socket_rdy, NULL, NULL, &timeout);
- if(ready == -1) {
- fprintf(stderr, "Error during select() in set()\n");
- exit(1);
- }
- else if(ready == 0) {
- // Timeout, send again
- timeouts ++;
- if(timeouts >= 6) {
- fprintf(stderr, "Error - timeout limit reached. Server is currently unavailable\n");
- exit(1);
- }
- printf("Timeout - Sending SET %d %d\n", key, value);
- count = sendto(server.sockfd, &buffer, sizeof(buffer), 0, (struct sockaddr *) &server.addr, server.addr_len);
- if(count == -1) {
- fprintf(stderr, "Set() has encountered an error during send()\n");
- exit(1);
- }
- }
- else {
- // Socket is ready
- break;
- }
- }
- count = recvfrom(server.sockfd, buffer, sizeof(buffer), 0, (struct sockaddr *) &sender_addr, &sender_addr_len);
- if(count == -1) {
- fprintf(stderr, "Set() encountered an error during receiving - Error Number %d\n", errno);
- exit(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement