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
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); }
//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);
/* 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); } }
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); }