Untitled

 avatar
unknown
plain_text
17 days ago
1.6 kB
5
Indexable
#include<stdio.h>
#include<string.h>
#include<time.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<arpa/inet.h>
#include<unistd.h>
#include<stdlib.h>
void main()
{
        char *ip="127.0.0.1";
        int port=5555,x=0;
        int sockfd;
        struct sockaddr_in server_addr,client_addr;
        char buffer[1024];
        socklen_t addr_size;
        int n;
        sockfd=socket(AF_INET,SOCK_DGRAM,0);
        if(sockfd<0)
        {
                perror("[-] Socket error");
                exit(1);
        }
        memset(&server_addr,'\0',sizeof(server_addr));
        server_addr.sin_family=AF_INET;
        server_addr.sin_port=htons(port);
        server_addr.sin_addr.s_addr=inet_addr(ip);
        n=bind(sockfd,(struct sockaddr*)&server_addr,sizeof(server_addr));
        if(n<0)
        {
                perror("[-] bind error");
                exit(1);
        }
        while(1)
        {
                bzero(buffer,1024);
                addr_size=sizeof(client_addr);
                recvfrom(sockfd,buffer,1024,0,(struct sockaddr*)&client_addr,&addr_size);
                if(atoi(buffer)!=x)
                        printf("server:received packet%s\n",buffer);
                else
                        printf("server:received packet%s(duplicate)\n",buffer);
                        x=atoi(buffer);
                        sleep(1);
                if(rand()%2==0)
                {
                        printf("Server.sending acknowledgement from packet%s\n",buffer);
                        sendto(sockfd,buffer,1024,0,(struct sockaddr*)&client_addr,sizeof(client_addr));
                }
        }
}

Leave a Comment