Untitled

 avatar
unknown
plain_text
9 days ago
1.5 kB
2
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>
#include<sys/select.h>
#include<pthread.h>
#define timeoutValue5
void main()
{
char *ip="127.0.0.100";
int port=5555;
pthread_t timeoutThread;
int sockfd;
struct sockaddr_in addr;
char buffer[1024];
socklen_t addr_size;
sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd<0)
{
perror("[-]socket error");
exit(1);
}
memset(&addr,'\0',sizeof(addr));
addr.sin_family=AF_INET;
addr.sin_port=htons(port);
addr.sin_addr.s_addr=inet_addr(ip);
int packetCounter=1;
while(packetCounter<=7)
{
bzero(buffer,1024);
sprintf(buffer,"%d",packetCounter);
printf("client:sending packet%s\n",buffer);
sendto(sockfd,buffer,1024,0,(struct sockaddr*)&addr,sizeof(addr));
bzero(buffer,1024);
addr_size=sizeof(addr);
struct timeval timeout;
timeout.tv_sec=timeoutValue5
timeout.tv_usec=0;
if(setsockopt(sockfd,SOL_SOCKET,SO_RCVTIMEO,&timeout,sizeof(timeout))<0)
printf("error\n");
else
{
bzero(buffer,1024);
addr_size=sizeof(addr);
int rec=recvfrom(sockfd,buffer,1024,0,(struct sockaddr*)&addr,&addr_size);
if(rec<0)
printf("client:timeout error ! sending packet again\n");
else
{
printf("client:recieved acknowledgement for packet %s\n",buffer);
recvfrom(sockfd,buffer,1024,0,(struct sockaddr*)&addr,&addr_size);
printf("client:recieved acknowledgement for packet %s \n",buffer);
sleep(1);
packetCounter++;
}
}
sleep(1);
}
}
Leave a Comment