/* <---- SOURCE CODE POCINJE OVDE ----> */ /* Serverski deo aplikacije Napisao Ivan Tanasic (autoexes@bsd.org.yu)*/ #include #include #include #include #include /*#include #include #include */ #define PORT 3550 /* Port that will be opened */ #define BACKLOG 2 /* Broj dozvoljenih konekcija */ #define MAXDATASIZE 100 main() { WSADATA info; if (WSAStartup(MAKEWORD(1,1), &info) != 0) MessageBox(NULL, "Cannot initialize WinSock!", "WSAStartup", MB_OK); int fd, fd2,numbytes; /* fajl deskriptori */ struct sockaddr_in server; /* informacije o serverovoj adresi */ struct sockaddr_in client; /* informacije o klijent adresi */ int sin_size; char buf[256]; if ((fd=socket(AF_INET, SOCK_STREAM, 0)) == -1 ){ /* poziva socket() */ printf("socket() greska\n"); exit(-1); } server.sin_family = AF_INET; server.sin_port = htons(PORT); server.sin_addr.s_addr = INADDR_ANY; /* INADDR_ANY stavlja IP addresu automatski */ /*bzero(&(server.sin_zero),8);*/ /* ostalo sa freebsd-a */ if(bind(fd,(struct sockaddr*)&server,sizeof(struct sockaddr))==-1){ /* poziva bind() */ printf("bind() greska\n"); exit(-1); } if(listen(fd,BACKLOG) == -1){ /* poziva listen() */ printf("listen() greska\n"); exit(-1); } while(1){ sin_size=sizeof(struct sockaddr_in); if ((fd2 = accept(fd,(struct sockaddr *)&client,&sin_size))==-1){ /* poziva accept() */ printf("accept() greska\n"); exit(-1); } printf("Imas konekciju sa %s\n",inet_ntoa(client.sin_addr) ); /* stampa klijentovu IP adresu */ send(fd2,"Dobro doso na moj server\n",22,0); /* klijentu salje hello poruku */ /* <--------- DEO KOJI PRIMA OD KLIJENTA VREME ------------>*/ if ((numbytes=recv(fd2,buf,MAXDATASIZE,0)) == -1){ /* Poziva recv() */ printf("recv() greska\n"); exit(-1); } buf[numbytes]='\0'; long int vreme, vreme2; time_t vreme1,*tloc; vreme2=atol(buf); /* pretvara CHAR buf u LONG INT vreme */ /*sleep(5)*/; getchar(); vreme1=time(tloc); vreme=vreme1-vreme2; /*Dobijamo proteklo vreme, konacno :^)*/ printf("Vreme proteklo je %d sekundi \n",vreme); shutdown(fd2,2); /* zatvara fd2 */ } } /* <---- SOURCE CODE SE ZAVRSAVA OVDE----> */