Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Welcome to: github.com/shfx17
- CLIENT.c
- #include <stdio.h>
- #include <stdlib.h>
- #include <errno.h>
- #include <unistd.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <string.h>
- #include<syslog.h>
- #include<netdb.h>
- #include<arpa/inet.h>
- #define MAXLINE 4096
- void err(char *s){
- char *bufor;
- sprintf(bufor," %s\n",s);
- sprintf(bufor,"%d\n",errno);
- sprintf(bufor,"%s\n",strerror(errno));
- syslog(LOG_NOTICE|LOG_USER,bufor);
- exit(-1);
- }
- setlogmask(LOG_UPTO (LOG_NOTICE));
- openlog("exampleprog", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
- syslog(LOG_NOTICE,"Program started by User %d", stderr);
- syslog(LOG_INFO, "A tree falls in a forest");
- closelog();
- struct hostent *hp;
- if((hp = gethostbyname(argv[1]))==NULL);
- {
- syslog(LOG_ERR,"hostnameerror");
- }
- printf("Host: %s\n", hp->h_name);
- char *ip = inet_ntoa(*((struct in_addr *)hp->h_addr));
- printf("IP Address %s\n", inet_ntoa(*((struct in_addr *)hp->h_addr)));
- if(inet_pton(AF_INET,ip,&servaddr.sin_addr)<0)
- {
- syslog(LOG_ERR,"Problem z formatem IP");
- exit(1);
- }
- struct servent *sp;
- sp = getservbyname(argv[2],"udp");
- printf("Port: %d \n", sp->s_port);
- if((servaddr.sin_port = htons(sp->s_port))<0)
- {
- syslog(LOG_ERR,"Zły format PORT");
- exit(1);
- }
- int main(int argc, char **argv)
- {
- int sockfd,n;
- char recvline[MAXLINE+1],buff[MAXLINE+1];
- struct sockaddr_in servaddr;
- if((sockfd = socket(AF_INET,SOCK_DGRAM,0))<0)
- {
- syslog(LOG_ERR,"Socket error");
- exit(1);
- }
- bzero(&servaddr, sizeof(servaddr));
- servaddr.sin_family = AF_INET;
- struct hostent *hp;
- if((hp = gethostbyname(argv[1]))==NULL);
- {
- syslog(LOG_ERR,"hostnameerror");
- }
- printf("Host: %s\n", hp->h_name);
- char *ip = inet_ntoa(*((struct in_addr *)hp->h_addr));
- printf("IP Address %s\n", inet_ntoa(*((struct in_addr *)hp->h_addr)));
- if(inet_pton(AF_INET,ip,&servaddr.sin_addr)<0)
- {
- syslog(LOG_ERR,"Problem z formatem IP");
- exit(1);
- }
- struct servent *sp;
- sp = getservbyname(argv[2],"udp");
- printf("Port: %d \n", sp->s_port);
- if((servaddr.sin_port = htons(sp->s_port))<0)
- {
- syslog(LOG_ERR,"Zły format PORT");
- exit(1);
- }
- while(1){
- bzero(buff,sizeof(buff));
- puts("Wyslij wiadomosc:");
- if(fgets (buff, sizeof(buff), stdin) != NULL)
- {
- if(sendto(sockfd,buff,strlen(buff), 0, (struct sockaddr *)&servaddr,
- sizeof(servaddr))<0)
- {
- syslog(LOG_ERR,"Blad sendto");
- exit(1);
- }
- else
- {
- printf("Wysłano: %s\n",buff);
- printf("Port poloczenia %d\n",servaddr.sin_port);
- printf("Port poloczenia %d \n",servaddr.sin_addr);
- }
- recvline[n]=0;
- if((recvfrom(sockfd,recvline, MAXLINE, 0, NULL, NULL))<0)
- {
- syslog(LOG_ERR,"recvfrom error");
- exit(1);
- }
- else
- {
- puts("****************");
- printf("Otrzymałem: %s\n", recvline);
- setlogmask(LOG_UPTO (LOG_NOTICE));
- openlog("exampleprog", LOG_CONS | LOG_PID | LOG_NDELAY,
- LOG_LOCAL1);
- syslog(LOG_NOTICE,"Program started by User %d", stderr);
- syslog(LOG_INFO, "A tree falls in a forest");
- closelog();
- printf("Port poloczenia %d\n",servaddr.sin_port);
- printf("Port poloczenia %d \n",servaddr.sin_addr);
- }
- if(fputs(recvline, stdout) == EOF)
- syslog(LOG_ERR,"Nie dziala fputs");
- if(n < 0)
- {
- syslog(LOG_ERR,"Read error");
- exit(1);
- }
- }
- }
- if(close(sockfd)<0)
- {
- syslog(LOG_ERR,"Close sockfd");
- exit(1);
- }
- return 0;
- }
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- SERVER.c
- #include <stdio.h>
- #include<stdlib.h>
- #include <errno.h>
- #include<unistd.h>
- #include <sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<string.h>
- #include<syslog.h>
- #include<netdb.h>
- #define MAXLINE 4096
- #define LISTENQ 1024
- int main (int argc, char **argv)
- {
- int listenfd;
- int len;
- struct sockaddr_in servaddr, cliaddr;
- char buff[MAXLINE],recvline[MAXLINE],z;
- if(argc !=2)
- {
- syslog(LOG_ERR,"Serverport");
- exit(1);
- }
- if((listenfd = socket (AF_INET, SOCK_DGRAM, 0 ))<0)
- {
- syslog(LOG_ERR,"Socket error");
- exit(1);
- }
- int nn= 240*1024;
- setsockopt(listenfd, SOL_SOCKET, SO_RCVBUF, &nn, sizeof(nn));
- bzero(&servaddr, sizeof(servaddr));
- puts("*");
- struct servent *sp;
- sp = getservbyname(argv[1],"udp");
- printf("Port nr: %d\n", sp->s_port);
- puts("**");
- servaddr.sin_family = AF_INET;
- servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
- if((servaddr.sin_port = htons(atoi(sp->s_port))<0))
- {
- syslog(LOG_ERR,"Zły port");
- exit(1);
- }
- if(bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr))<0)
- {
- syslog(LOG_ERR,"Bind error");
- exit(1);
- }
- while(1)
- {
- len = sizeof(cliaddr);
- printf("listendf %d \n", listenfd);
- if((recvfrom (listenfd, recvline, MAXLINE, 0 ,(struct sockaddr* )&cliaddr, &len))>0)
- {
- printf("Otrzymałem: %s \n",recvline);
- printf("Port poloczenia %d\n",servaddr.sin_port);
- printf("Port poloczenia %d \n",servaddr.sin_addr);
- int i, j;
- puts("***********************");
- for(i = strlen(recvline) - 1, j = 0; i >= 0; i--, j++) {
- buff[j] = recvline[i];
- }
- printf("Wysylam odpowiedz: %s\n", buff);
- sendto(listenfd, buff, sizeof(buff), 0, (struct sockaddr *)&cliaddr, len);
- printf("Port poloczenia %d\n",servaddr.sin_port);
- printf("Port poloczenia %d \n",servaddr.sin_addr);
- setlogmask(LOG_UPTO (LOG_NOTICE));
- openlog("exampleprog", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
- syslog(LOG_NOTICE,"Program started by User %d", stderr);
- syslog(LOG_INFO, "End syslog");
- closelog();
- }
- }
- if(close(listenfd) == -1)
- {
- syslog(LOG_ERR,"Bład zamkniecia");
- exit(1);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement