np

Published on January 2017 | Categories: Documents | Downloads: 110 | Comments: 0 | Views: 895
of 21
Download PDF   Embed   Report

Comments

Content

1 // A program to create Socket and print Sockfd on successful creation of socket #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<stdio.h> #include<stdlib.h> #include<errno.h> int main() { int fd,fd1; if(fd=socket(AF_INET,SOCK_STREAM,0))<0) { perror(“socket”); exit(0); } printf(“Stream socket descriptor : %d”, fd); if(fd1=socket(AF_INET,SOCK_DGRAM,0))<0) { perror(“socket”); exit(0); } printf(“Data Gram socket descriptor : %d”, fd1); return 0; }

//A program to fill socket address structure and binding it to socket #include<sys/socket.h>

2 #include<sys/types.h> #include<netinet/in.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> #define MYPORT 5765 int main() { int sockfd; struct sockaddr_in myaddr; int len,i; //Creation of socket if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) { perror("Socket failed"); exit(1); } //filling the data structure myaddr.sin_family=AF_INET; myaddr.sin_port=htons(MYPORT); myaddr.sin_addr.s_addr=htonl(0l); //binding socket address structure to socket if(bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr))<0) { perror("bind failed"); exit(1); }

3 printf(“Bind success”); }

//A program get the port number from user and bind to socket #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> int main(int argc,char *argv[]) { int sockfd; struct sockaddr_in myaddr; int len,i; if(argc!=2) { perror("usage:server port"); exit(1); } //Creation of socket if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) { perror("Socket failed"); exit(1); } //filling the data structure //check whether user entered port no as command line argument

4 myaddr.sin_family=AF_INET; //converting string to integer and filling port no. myaddr.sin_port=htons(atoi(argv[1])); myaddr.sin_addr.s_addr=htonl(0l); //binding socket address structure to socket if(bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr))<0) { perror("bind failed"); exit(1); } printf(“Bind success”); }

//A program to make the server socket ready to listen the connection #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> #define MYPORT 5765 int main() { int sockfd; struct sockaddr_in myaddr; int len,i; //Creation of socket

5 if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) { perror("Socket failed"); exit(1); } //filling the data structure myaddr.sin_family=AF_INET; myaddr.sin_port=htons(MYPORT); myaddr.sin_addr.s_addr=htonl(0l); //binding socket address structure to socket if(bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr))<0) { perror("bind failed"); exit(1); } printf(“Bind success”); if(listen(sockfd,5)<0) { perror("listen failed"); exit(1); } printf(“Listen success”); }

//A program for TCP Echo client-server //Echo Server program

6 #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> #define MYPORT 5765 int main() { int sockfd,newfd,nbytes; struct sockaddr_in myaddr; char buff[512],temp,buff1[512]; int len,i; //Creation of socket if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) { perror("Socket failed"); exit(1); } //filling the data structure myaddr.sin_family=AF_INET; myaddr.sin_port=htons(MYPORT); myaddr.sin_addr.s_addr=htonl(0l); //binding socket address structure to socket if(bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr))<0) { perror("bind failed");

7 exit(1); } printf(“Bind success”); if(listen(sockfd,5)<0) { perror("listen failed"); exit(1); } printf(“Listen success”); for(; ;) { //accept connection request if((newfd=accept(sockfd,0,0))<0) { perror("accept failed"); exit(1); } // read and write while((nbytes=read(newfd,buff,512))!=0) { if(nbytes<0) { perror("Read failed"); exit(1); } write(1,buff,nbytes); if(write(newfd,buff,len)<0)

8 { perror("write failed"); exit(1); } }//while }//for }//main

//Echo client program #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> main(int argc,char *argv[]) { int sockfd,newfd,nbytes1,nbytes; struct sockaddr_in servaddr; char buff[512]; if(argc!=3) { perror("usage:client,server port"); exit(1); } //creating socket if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0)

9 { perror("Socket failed"); exit(1); } //filling the data structure servaddr.sin_family=AF_INET; servaddr.sin_port=htons(atoi(argv[1])); servaddr.sin_addr.s_addr=htonl(INADDR_ANY);

//connect system call if((connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr))<0)) { perror("connect failed"); exit(1); } printf(“Connection success ”); //read and write from keyboard and to monitor respectively while((nbytes=read(0,buff,512))!=0) { if(nbytes<0) { perror("read1 failed"); exit(1); } if((write(sockfd,buff,nbytes))!=nbytes) { perror("write1 error");

10 exit(1); } //read data from server if((nbytes1=read(sockfd,buff,512))<0) { perror("read2 failed"); exit(1); } //write data to display on the monitor stdout if(write(1,buff,nbytes1)!=nbytes1) { perror("write2 failed"); exit(1); } } //while } //main

//A program for TCP chat client-server //Chat Server program #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> #define MYPORT 5765 int main()

11 { int sockfd,newfd,nbytes; struct sockaddr_in myaddr; char buff[512],temp,buff1[512]; int len,i; //Creation of socket if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) { perror("Socket failed"); exit(1); } //filling the data structure myaddr.sin_family=AF_INET; myaddr.sin_port=htons(MYPORT); myaddr.sin_addr.s_addr=htonl(0l); //binding socket address structure to socket if(bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr))<0) { perror("bind failed"); exit(1); } printf(“Bind success”); if(listen(sockfd,5)<0) { perror("listen failed"); exit(1); }

12 printf(“Listen success”); for(; ;) { //accept connection request if((newfd=accept(sockfd,0,0))<0) { perror("accept failed"); exit(1); } // read and write while((nbytes=read(newfd,buff,512))!=0) { if(nbytes<0) { perror("Read failed"); exit(1); } write(1,buff,nbytes); printf("Enter response"); scanf("%s",buff1); len=strlen(buff1); if(write(newfd,buff1,len)<0) { perror("write failed"); exit(1); } }//while

13 }//for }//main

//A program for TCP client-server to read a string from client and send reverse string from server // Server program for reading a string from client and send reverse string to client #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> #define MYPORT 5765 int main() { int sockfd,newfd,nbytes; struct sockaddr_in myaddr; char buff[512],temp,buff1[512]; int len,i; //Creation of socket if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) { perror("Socket failed"); exit(1); } //filling the data structure myaddr.sin_family=AF_INET; myaddr.sin_port=htons(MYPORT);

14 myaddr.sin_addr.s_addr=htonl(0l); //binding socket address structure to socket if(bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr))<0) { perror("bind failed"); exit(1); } printf(“Bind success”); if(listen(sockfd,5)<0) { perror("listen failed"); exit(1); } printf(“Listen success”); for(; ;) { //accept connection request if((newfd=accept(sockfd,0,0))<0) { perror("accept failed"); exit(1); } // read and write while((nbytes=read(newfd,buff,512))!=0) { if(nbytes<0) {

15 perror("Read failed"); exit(1); } write(1,buff,nbytes); strrev(buff); if(write(newfd,buff,len)<0) { perror("write failed"); exit(1); } }//while }//for }//main

/* Program for Echo Client – Server with UDP Echo Server*/ //UDP SERVER(ECHO DATA GRAM PROGRAM) #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> main(int argc,char *argv[]) { int sockfd,addrlen,nbytes; char buff[512]; char buff1[512]; int i; struct sockaddr_in myaddr,clntaddr; if(argc!=2) { perror("usage server port"); exit(1); } if((sockfd=socket(AF_INET,SOCK_DGRAM,0))<0)

16 { perror("Socket failed"); exit(1); } // fill the server address myaddr.sin_family=AF_INET; myaddr.sin_port=htons(atoi(argv[1])); myaddr.sin_addr.s_addr=htonl(0l); //bind if((bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr)))<0) { perror("bind failed"); exit(1); } //dummy value assignment addrlen=sizeof(clntaddr); //recvfrom if((nbytes=recvfrom(sockfd,buff,512,0,(struct sockaddr*)&clntaddr,&addrlen))<0) //client address is a value result argument //tell server to fill the values { perror("recvfrom error"); exit(1); } for( i = 0;i<nbytes; i++) buff1[ i ] = toupper( buff[ i ] ); //send to if((sendto(sockfd,buff1,nbytes,0,(struct sockaddr*)&clntaddr,addrlen))!=nbytes) { perror("send to error"); exit(1); } }

//UDP CLIENT ECHO UDP CLIENT #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<errno.h>

17 #include<stdlib.h> #include<stdio.h> main(int argc,char *argv[]) { int sockfd,nbytes,nbytes1,addrlen; char buff[512]; struct sockaddr_in myaddr,servaddr; if(argc!=3) { perror("usage client,serverport,serveraddress"); exit(1); } //socket if((sockfd=socket(AF_INET,SOCK_DGRAM,0))<0) { perror("Socket failed"); exit(1); } //fill the client address myaddr.sin_family=AF_INET; myaddr.sin_port=htons(0); //you can assign ur own port no if zero is specified myaddr.sin_addr.s_addr=htonl(0l); //bind if((bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr)))<0) { perror("bind failed"); exit(1); } //read data from keyboard if((nbytes=read(0,buff,512))<0) { perror("read error"); exit(1); } //fill the server address servaddr.sin_family=AF_INET; servaddr.sin_port=htons(atoi(argv[2])); servaddr.sin_addr.s_addr=htonl(inet_addr(argv[1])); //send to if((sendto(sockfd,buff,nbytes,0,(struct sockaddr*)&servaddr,sizeof(servaddr)))!=

18 nbytes) { perror("send to failed"); exit(1); } // recv from addrlen=sizeof(servaddr); if((nbytes1=recvfrom(sockfd,buff,512,0,(struct sockaddr*)&servaddr,&addrlen))!=nbytes) { perror("recvfrom error"); exit(1); } // write to monitor on display if((write(1,buff,nbytes1))!=nbytes) { perror("write error"); exit(1); } }

/* A simple Program to demonstrate usage of SELECT */ #include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include <sys/types.h> #include <unistd.h> int main(void) { fd_set rfds; struct timeval tv; int retval; /* Watch stdin (fd 0) to see when it has input. */ FD_ZERO(&rfds); FD_SET(0, &rfds); /* Wait up to five seconds. */ tv.tv_sec = 5; tv.tv_usec = 0; retval = select(1, &rfds, NULL, NULL, &tv); /* Dont rely on the value of tv now! */ if (retval == -1)

19 perror("select()"); else if (retval) printf("Data is available now.\n"); /* FD_ISSET(0, &rfds) will be true. */ else printf("No data within five seconds.\n"); exit(EXIT_SUCCESS); }

/*Client – Server programs for reverse string using UDP*/ //UDP SERVER(ECHO DATA GRAM PROGRAM reverse ) #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> #include<string.h> main(int argc,char *argv[]) { int sockfd,addrlen,nbytes,i,len; char buff[512],temp; struct sockaddr_in myaddr,clntaddr; if(argc!=2) { perror("usage server port"); exit(1); } if((sockfd=socket(AF_INET,SOCK_DGRAM,0))<0) { perror("Socket failed"); exit(1); } // fill the server address myaddr.sin_family=AF_INET; myaddr.sin_port=htons(atoi(argv[1])); myaddr.sin_addr.s_addr=htonl(0l); //bind if((bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr)))<0) { perror("bind failed"); exit(1); }

20 //dummy value assignment addrlen=sizeof(clntaddr); //recvfrom if((nbytes=recvfrom(sockfd,buff,512,0,(struct sockaddr*)&clntaddr,&addrlen))<0) { perror("recvfrom error"); exit(1); } len=strlen(buff)-1; for(i=0;i<strlen(buff)/2;i++) { temp=buff[i]; buff[i]=buff[len]; buff[len--]=temp; } //send to if((sendto(sockfd,buff,nbytes,0,(struct sockaddr*)&clntaddr,addrlen))!=nbytes) { perror("send to error"); exit(1); } } //UDP CLIENT ECHO UDP CLIENT (for reversing a string) #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<errno.h> #include<stdlib.h> #include<stdio.h> main(int argc,char *argv[]) { int sockfd,nbytes,nbytes1,addrlen; char buff[512]; struct sockaddr_in myaddr,servaddr; if(argc!=3) { perror("usage client,serverport,serveraddress"); exit(1); } //socket if((sockfd=socket(AF_INET,SOCK_DGRAM,0))<0) {

21 perror("Socket failed"); exit(1); } //fill the client address myaddr.sin_family=AF_INET; myaddr.sin_port=htons(0); myaddr.sin_addr.s_addr=htonl(0l); //bind if((bind(sockfd,(struct sockaddr*)&myaddr,sizeof(myaddr)))<0) { perror("bind failed"); exit(1); } //read data from keyboard if((nbytes=read(0,buff,512))<0) { perror("read error"); exit(1); } //fill the server address servaddr.sin_family=AF_INET; servaddr.sin_port=htons(atoi(argv[1])); servaddr.sin_addr.s_addr=htonl(inet_addr(argv[2])); //send to if((sendto(sockfd,buff,nbytes,0,(struct sockaddr*)&servaddr,sizeof(servaddr)))!=nbytes) { perror("send to failed"); exit(1); } // recv from addrlen=sizeof(servaddr); if((nbytes1=recvfrom(sockfd,buff,512,0,(struct sockaddr*)&servaddr,&addrlen))!=nbytes) { perror("recvfrom error"); exit(1); }

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close