From 76819fad10798e5688d2186555d9e1f4954605a0 Mon Sep 17 00:00:00 2001 From: mayank Date: Sun, 14 Oct 2018 00:26:05 +0530 Subject: [PATCH] fixed error --- client.c | 116 +++++++++++++-------------------------------------- server.c | 123 +++++++++++++++---------------------------------------- 2 files changed, 61 insertions(+), 178 deletions(-) diff --git a/client.c b/client.c index 9dcec81..074abab 100644 --- a/client.c +++ b/client.c @@ -1,89 +1,31 @@ -/* -*AUTHOR: Jon Rohan -*DATE: 2.28.2005 -*TITLE: client.c -*DESCRIPTION: This program will be specified an IP address in the command line -* and will connect to an already running server. -*/ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define PORT 1025 /*This is the port for the client server connection*/ -#define MAXDATASIZE 500 // max number of bytes we can get at once - -int main(int argc, char *argv[]) +#include"netinet/in.h" +#include"sys/socket.h" +#include"stdio.h" +main() { - int sockfd, numbytes; - char buf[MAXDATASIZE]; - struct hostent *he; - struct sockaddr_in their_addr; // connector.s address information - - //***************************block of code finds the localhost IP - char hostn[400]; //placeholder for the hostname - char ipadd[400]; //placeholder for my IP address - - struct hostent *hostIP; //placeholder for the IP address - - //if the gethostname returns a name then the program will get the ip address using gethostbyname - if((gethostname(hostn, sizeof(hostn))) == 0) - { - hostIP = gethostbyname(hostn); //the netdb.h function gethostbyname - } - else - { - printf("ERROR:FC4539 - IP Address not found."); //error if the hostname is not found - } - //**************************************************************** - - - if (argc != 2) - { - fprintf(stderr,"usage: client hostname\n"); - exit(1); - } - - if ((he=gethostbyname(argv[1])) == NULL) - { // get the host info - perror("gethostbyname"); - exit(1); - } - - if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) - { - perror("socket"); - exit(1); - } - - their_addr.sin_family = AF_INET; // host byte order - their_addr.sin_port = htons(PORT); // short, network byte order - their_addr.sin_addr = *((struct in_addr *)he->h_addr); - memset(&(their_addr.sin_zero), 0, 8); // zero the rest of the - - if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == -1) - { - perror("connect"); - exit(1); - } - - if ((numbytes=recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) - { - perror("recv"); - exit(1); - } - - buf[numbytes] = 0; - printf("\n\nLocalhost: %s\n", inet_ntoa(*(struct in_addr *)hostIP->h_addr)); - printf("Local Port: %d\n", PORT); - printf("Remote Host: %s\n", inet_ntoa(their_addr.sin_addr)); - printf("Received daytime data: %s\n",buf); - close(sockfd); - return 0; +struct sockaddr_in sa,cli; +int n,sockfd; +int len;char buff[100]; +sockfd=socket(AF_INET,SOCK_STREAM,0); +if(sockfd<0){ printf("\nError in Socket"); +exit(0); } - +else printf("\nSocket is Opened"); +bzero(&sa,sizeof(sa)); +sa.sin_family=AF_INET; +sa.sin_port=htons(5600); +if(connect(sockfd,(struct sockaddr*)&sa,sizeof(sa))<0) +{ +printf("\nError in connection failed"); +exit(0); +} +else +printf("\nconnected successfully"); +if(n=read(sockfd,buff,sizeof(buff))<0) +{ +printf("\nError in Reading"); +exit(0); +} +else +{printf("\nMessage Read %s",buff); +}} \ No newline at end of file diff --git a/server.c b/server.c index f79eed6..1f0b598 100644 --- a/server.c +++ b/server.c @@ -1,95 +1,36 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#define MYPORT 1025 // the port users will be connecting to -#define BACKLOG 10 // how many pending connections queue will hold -void sigchld_handler(int s) +#include"netinet/in.h" +#include"sys/socket.h"#include"stdio.h" +#include"string.h" +#include"time.h" +main( ) { - while(wait(NULL) > 0); +struct sockaddr_in sa; +struct sockaddr_in cli;int sockfd,conntfd;int len,ch;char str[100]; +time_t tick; +sockfd=socket(AF_INET,SOCK_STREAM,0); +if(sockfd<0) +{ +printf("error in socket\n"); +exit(0); +} +else printf("Socket opened"); +bzero(&sa,sizeof(sa)); +sa.sin_port=htons(5600); +sa.sin_addr.s_addr=htonl(0); +if(bind(sockfd,(struct sockaddr*)&sa,sizeof(sa))<0) +{ +printf("Error in binding\n"); } -int main(void) +else +printf("Binded Successfully"); +listen(sockfd,50); +for(;;) { - time_t timer; - int sockfd, new_fd; // listen on sock_fd, new connection on new_fd - struct sockaddr_in my_addr; // my address information - struct sockaddr_in their_addr; // connector.s address information - int sin_size; - struct sigaction sa; - int yes=1; - if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) - { - perror("socket"); - exit(1); - } - if (setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(int)) == -1) - { - perror("setsockopt"); - exit(1); - } - my_addr.sin_family = AF_INET; // host byte order - my_addr.sin_port = htons(MYPORT); // short, network byte order - my_addr.sin_addr.s_addr = INADDR_ANY; // automatically fill with my IP - memset(&(my_addr.sin_zero), 0, 8); // zero the rest of the struct - - if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) - { - perror("bind"); - exit(1); - } - if (listen(sockfd, BACKLOG) == -1) - { - perror("listen"); - exit(1); - } - sa.sa_handler = sigchld_handler; // reap all dead processes - sigemptyset(&sa.sa_mask); - sa.sa_flags = SA_RESTART; - if (sigaction(SIGCHLD, &sa, NULL) == -1) - { - perror("sigaction"); - exit(1); - } - while(1) // main accept() loop - { - sin_size = sizeof(struct sockaddr_in); - if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr,&sin_size)) == -1) - { - //perror("accept"); - continue; - } - printf("Received request from Client: %s:%d\n", - inet_ntoa(their_addr.sin_addr),MYPORT); - if (!fork()) - { // this is the child process - close(sockfd); // child doesn.t need the listener - timer = time(NULL); - if (send(new_fd, ctime(&timer), 30, 0) == -1) - perror("send"); - close(new_fd); - exit(0); - } - close(new_fd); // parent doesn.t need this - } - return 0; +len=sizeof(ch); +conntfd=accept(sockfd,(struct sockaddr*)&cli,&len); +printf("Accepted"); +tick=time(NULL); +snprintf(str,sizeof(str),"%s",ctime(&tick)); +printf("%s",str);write(conntfd,str,100); } - - - - - - - - - - - +} \ No newline at end of file