Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <string.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <signal.h>
- #include <sys/stat.h>
- #define PORT_ID 10001
- int main(void)
- {
- int sockid;
- struct sockaddr_in ssock_addr;
- int sizeof_addr = sizeof(ssock_addr);
- struct sockaddr_in client;
- int sizeof_client = sizeof(client);
- char mesaj[1024];
- int nread,delay = 0,status;
- bzero((char *)&ssock_addr, sizeof_addr);
- ssock_addr.sin_family = AF_INET;
- ssock_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- ssock_addr.sin_port = htons(PORT_ID);
- if ((sockid = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
- {
- printf("Eroare socket\n");
- return -1;
- }
- if ((bind(sockid, (struct sockaddr *)&ssock_addr, sizeof_addr) < 0))
- {
- printf("Eroare de legatura\n");
- return -1;
- }
- else
- printf("Bind\n");
- while(1)
- {
- nread=recvfrom(sockid,&mesaj,sizeof(mesaj),0,(struct sockaddr *) &ssock_addr,&sizeof_addr);
- if(nread<0)
- {
- printf("Error la receptionare mesaj\n");
- return -1;
- }
- if(mesaj[0]=='.'&& mesaj[1] == 'd')
- {
- delay = 0;
- status=0;
- for(int i=3;i < strlen(mesaj) -1;i++)
- {
- if(mesaj[i] < '0'|| mesaj[i] > '9')
- { printf("Eroare comanda\n");
- status = -1;
- break;
- }
- else
- delay= delay*10 + mesaj[i] - '0';
- }
- if(status==0)
- {
- sendto(sockid,mesaj,sizeof(mesaj),0,(struct sockaddr *) &ssock_addr, sizeof_addr);
- printf("Delay setat la %d\n",delay);
- }
- //Intarziere mai mica ca 0
- else if(status < 0)
- sendto(sockid,"ERROR",6,0,(struct sockaddr *) &ssock_addr, sizeof_addr);
- }
- else
- {
- sleep(delay);
- sendto(sockid,mesaj,sizeof(mesaj),0,(struct sockaddr *) &ssock_addr, sizeof_addr);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement