A Socket Program For Echo / Ping / Talk Commands// Server
A Socket Program For Echo / Ping / Talk Commands// Server
A Socket Program For Echo / Ping / Talk Commands// Server
h> void error(char *msg) { perror(msg); exit(1); } int main(int argc,char *argv[]) { int sockfd,newsockfd,portno,client; char buffer[256]; struct sockaddr_in serv_addr,cli_addr; int n; if(argc<2) { fprintf(stderr,"error, no port provided\n"); exit(1); } sockfd=socket(AF_INET,SOCK_STREAM,0); if(sockfd<0) error("Error opening socket"); bzero((char *)& serv_addr,sizeof(serv_addr)); portno=atoi(argv[1]); serv_addr.sin_family=AF_INET; serv_addr.sin_addr.s_addr=INADDR_ANY; serv_addr.sin_port=htons(portno); if(bind(sockfd,(struct sockaddr *)& serv_addr,sizeof(serv_addr))<0) error("error on binding"); listen(sockfd,5); client=sizeof(cli_addr); newsockfd=accept(sockfd,(struct sockaddr *)& cli_addr,&client); if(newsockfd<0) error("error on accept"); bzero(buffer,256); n=read(newsockfd,buffer,255); if(n<0) error("Error in reading from socket"); printf("Here is the msg %s\n",buffer); n=write(newsockfd,"I got your message"); if(n<0)
CLIENT: #include<stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<netdb.h> void error(char *msg) { perror(msg); exit(1); } int main(int argc,char *argv[]) { int sockfd,newsockfd,portno,n; struct sockaddr_in serv_addr; struct hostent *server; char buffer[256]; if(argc<3) { fprintf(stderr,"usage %s hostname port\n",argv[0]); exit(0); } portno=atoi(argv[2]); sockfd=socket(AF_INET,SOCK_STREAM,0); if(sockfd<0) error("Error opening socket"); server=gethostbyname(argv[1]); if(server==NULL) { printf(stderr,"ERROR,no such host\n"); exit(0);} bzero((char *)&serv_addr,sizeof(serv_addr)); serv_addr.sin_family=AF_INET; bcopy((char *)server->h_addr,(char *)&serv_addr.sin_addr,server->h_length); serv_addr.sin_port=htons(portno); if(connect(sockfd,&serv_addr,sizeof(serv_addr))<0) error("ERROE connecting"); printf("please enter the message"); bzero(buffer,256); fgets(buffer,255,stdin); n=write(sockfd,buffer,strlen(buffer)); if(n<0) error("ERROR weiting to socket"); bzero(buffer,256); n=read(sockfd,buffer,255);
OUTPUT: Server: "server.c" 45L, 1107C written [cs0912@telnet ~]$ cc serv.c -oserver [cs0912@telnet ~]$ ./server 7776 Here is the msg :haiiii Client: [cs0912@telnet ~]$ cc clien.c -oclient [cs0912@telnet ~]$ ./client -oclient usage ./client hostname port [cs0912@telnet ~]$ ./client localhost 7776 please enter the message haiiii I got your message.