Advertisement
Bewin

SnW_sender

Mar 24th, 2025
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.44 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <sys/socket.h>
  4. #include <arpa/inet.h>
  5. #include <stdlib.h>
  6. #include <unistd.h>
  7.  
  8. int main(void)
  9. {
  10.     int socket_desc;
  11.     struct sockaddr_in server_addr;
  12.     char buffer[1024];             //for snw
  13.     int k=5,m=1,p;                   //for snw
  14.     // Clean buffers:
  15.     //memset(server_message,'\0',sizeof(server_message));
  16.     //memset(client_message,'\0',sizeof(client_message));
  17.    
  18.     // Create socket:
  19.     socket_desc = socket(AF_INET, SOCK_STREAM, 0);
  20.    
  21.     if(socket_desc < 0){
  22.         printf("Unable to create socket\n");
  23.         return -1;
  24.     }
  25.    
  26.     printf("Socket created successfully\n");
  27.    
  28.     // Set port and IP the same as server-side:
  29.     server_addr.sin_family = AF_INET;
  30.     server_addr.sin_port = htons(2000);
  31.     server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
  32.    
  33.     // Send connection request to server:
  34.     if(connect(socket_desc, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0){
  35.         printf("Unable to connect\n");
  36.         return -1;
  37.     }
  38.     printf("Connected with server successfully\n");
  39.    
  40.     while(k!=0)
  41.     {
  42.                if(m<=5)
  43.                        printf("Sending frame %d\n",m);
  44.                if(m%2==0)
  45.                          strcpy(buffer,"frame");
  46.                else
  47.                {
  48.                    strcpy(buffer,"error");
  49.                    printf("Packet loss\n");
  50.                    for(p=1;p<=3;p++)
  51.                    {                            
  52.                                 printf("Waiting for %d seconds\n",p);
  53.                    }
  54.                    printf("retransmitting...\n");
  55.                    strcpy(buffer,"frame");
  56.                    sleep(3);
  57.                }
  58.                int y= send(socket_desc,buffer,19,0);
  59.                if(y==-1)
  60.                {
  61.                         printf("Error in sending");
  62.                         exit(1);
  63.                }
  64.                else
  65.                {
  66.                    printf("Sent frame %d\n",m);
  67.                }
  68.                int z=recv(socket_desc,buffer,1024,0);
  69.                if(z==-1)
  70.                         printf("Error in receiving data");
  71.                if(strncmp(buffer,"ack",3)==0)
  72.                          printf("Received ACK for frame %d \n",m);
  73.                
  74.                k--;
  75.                m++;
  76.     }              
  77.     // Close the socket:
  78.     close(socket_desc);
  79.    
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement