Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 6

Network Programming Lab Manual

Week9:UDP Client Server to reverse the input string UDP Client #include<stdio.h> #include<stdlib.h> #include<errno.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<sys/wait.h> #include<fcntl.h> #include<signal.h> #include<unistd.h> #define BUFSIZE 1024 int main(int argc,char *argv[]) { int sd,n; socklen_t slen; char sendbuf[BUFSIZE],rcvbuf[BUFSIZE]; struct sockaddr_in servaddr; if(NULL==argv[1]) { printf("please enter the ip address of server\n"); exit(0); } if(argv[2]==NULL) { printf("enter the port no of the server\n"); exit(0); } sd=socket(AF_INET,SOCK_DGRAM,0); if(sd<0) { perror("socket"); exit(1); } memset(&servaddr,0,sizeof(servaddr)); servaddr.sin_family=AF_INET; ASEC 1

Network Programming Lab Manual servaddr.sin_port=htons(atoi(argv[2])); servaddr.sin_addr.s_addr=inet_addr(argv[1]); printf("client starting service\n"); printf("enter data for the server\n"); fgets(sendbuf,BUFSIZE,stdin); n=strlen(sendbuf); slen=sizeof(servaddr); sendto(sd,sendbuf,n,0,(struct sockaddr *)&servaddr,slen); printf("data sent to server %s\n",sendbuf); recvfrom(sd,rcvbuf,BUFSIZE,0,(struct sockaddr *)&servaddr,&slen); printf("%s\n",rcvbuf); } Output Cc udpcm.c ./a.out 127.0.0.1 1568 Client starting service Enter data for the server Hello Data sent to server hello Olleh UDP Server #include<stdio.h> #include<stdlib.h> #include<errno.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<sys/wait.h> #include<fcntl.h> #include<signal.h> #include<unistd.h> #define BUFSIZE 512 #define MAXNAME 100 int main(int argc,char *argv[]) { int sd,n,ret; struct sockaddr_in servaddr,cliaddr; ASEC 2

Network Programming Lab Manual socklen_t length; char cli_name[MAXNAME],data_rcv[BUFSIZE]; char temp[50],arev[50],temp1[50]; int len,k,a; sd=socket(AF_INET,SOCK_DGRAM,0); if(sd<0) { perror("socket"); exit(1); } int portno=atoi(argv[1]); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family=AF_INET; servaddr.sin_port=htons(portno); servaddr.sin_addr.s_addr=htonl(INADDR_ANY); ret=bind(sd,(struct sockaddr *)&servaddr,sizeof(servaddr)); if(ret<0) { perror("bind fails"); exit(1); } printf("iam waiting....\n"); length=sizeof(cliaddr); n=recvfrom(sd,data_rcv,BUFSIZE,0,(struct sockaddr *)&cliaddr,&length); printf("data received from %s\n",inet_ntop(AF_INET,&cliaddr.sin_addr,cli_name, sizeof(cli_name))); data_rcv[n]='\0'; printf(" I have received %s\n",data_rcv); strcpy(temp,data_rcv); for(k=0;temp[k]!=0;k++) len=k; a=0; for(k=len-1;k>=0;k--) temp1[a++]=temp[k]; temp1[a]='\0'; sendto(sd,temp1,n,0,(struct sockaddr *)&cliaddr,length); close(sd); exit(0); } Output Cc udpsm.c ./a.out 1568 Iam waiting .. Data received from 127.0.0.1 I have received hello ASEC 3

Network Programming Lab Manual Week10:UDP Client Server to transfer file UDP Client File #include<stdio.h> #include<stdlib.h> #include<errno.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<sys/wait.h> #include<fcntl.h> #include<signal.h> #include<unistd.h> #define BUFSIZE 1024 int main(int argc,char *argv[]) { int sd,n; socklen_t slen; char sendbuf[BUFSIZE],rcvbuf[BUFSIZE]; struct sockaddr_in servaddr; if(NULL==argv[1]) { printf("please enter the ip address of server\n"); exit(0); } if(argv[2]==NULL) { printf("enter the port no of the server\n"); exit(0); } sd=socket(AF_INET,SOCK_DGRAM,0); if(sd<0) { perror("socket"); exit(1); } memset(&servaddr,0,sizeof(servaddr)); servaddr.sin_family=AF_INET; servaddr.sin_port=htons(atoi(argv[2])); servaddr.sin_addr.s_addr=inet_addr(argv[1]); ASEC 4

Network Programming Lab Manual printf("client starting service\n"); printf("please enter the filename "); scanf("%s",sendbuf); n=strlen(sendbuf); slen=sizeof(servaddr); sendto(sd,sendbuf,n,0,(struct sockaddr *)&servaddr,slen); printf("data sent to server %s\n",sendbuf); recvfrom(sd,rcvbuf,BUFSIZE,0,(struct sockaddr *)&servaddr,&slen); printf("%s\n",rcvbuf); } Output Cc udpcm.c ./a.out 1236 Client starting service Please enter the filename header.h #include<stdio.h> #include<stdlib.h> UDP Server File #include<stdio.h> #include<stdlib.h> #include<errno.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<sys/wait.h> #include<fcntl.h> #include<signal.h> #include<unistd.h> #define BUFSIZE 512 #define MAXNAME 100 int main(int argc,char *argv[]) { int sd,n,ret; struct sockaddr_in servaddr,cliaddr; socklen_t length; char cli_name[MAXNAME],data_rcv[BUFSIZE]; char temp[BUFSIZE],arev[50],temp1[50]; int len,fd; ASEC 5

Network Programming Lab Manual sd=socket(AF_INET,SOCK_DGRAM,0); if(sd<0) { perror("socket"); exit(1); } int portno=atoi(argv[1]); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family=AF_INET; servaddr.sin_port=htons(portno); servaddr.sin_addr.s_addr=htonl(INADDR_ANY); ret=bind(sd,(struct sockaddr *)&servaddr,sizeof(servaddr)); if(ret<0) { perror("bind fails"); exit(1); } printf("iam waiting....\n"); length=sizeof(cliaddr); n=recvfrom(sd,data_rcv,BUFSIZE,0,(struct sockaddr *)&cliaddr,&length); printf("data received from %s\n",inet_ntop(AF_INET,&cliaddr.sin_addr,cli_name, sizeof(cli_name))); data_rcv[n]='\0'; printf(" I have received %s\n",data_rcv); if((fd=open(data_rcv,O_RDWR))<0) { printf("%d\n",fd); strcpy(temp,"no such file or directory\n"); sendto(sd,temp,sizeof(temp),0,(struct sockaddr *)&cliaddr,length); } else { n=read(fd,temp,sizeof(temp)); sendto(sd,temp,n,0,(struct sockaddr *)&cliaddr,length); } close(sd); exit(0); } Output Cc udpsm.c ./a.out 1568 iam waiting data received from 127.0.0.1 i have received hello ASEC 6

You might also like