![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| High Level Programming Post questions about C, C++, Java, SQL, and other programming languages here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Client and Server program gen by Makefile | wongalan48 | High Level Programming | 0 | 03-05-2007 10:09 AM |
| Client - server program | mathu | High Level Programming | 4 | 09-17-2006 09:56 AM |
| Chat client-server program | powermind | High Level Programming | 1 | 09-04-2006 08:19 AM |
| program to transfer a file from client machine to server | nathgopi214 | High Level Programming | 3 | 07-04-2006 03:16 AM |
| i want a UDP Client receiving program | Nirmala | IP Networking | 1 | 06-10-2005 12:46 PM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#8
|
|||
|
|||
|
Sounds a lot like homework.
|
| Forum Sponsor | ||
|
|
|
#9
|
|||
|
|||
|
Herez the code
Database creation
# include <stdio.h> #include<string.h> #include<stdlib.h> int main(void) { FILE *stud_file,*pass_file; char chr; char filename1[35]; int fee=200,rf=0,value=0; char tempbfr[5]; struct stud { char stud_id[5]; char DD[5]; char amount[5]; char ref[5]; } student; struct studp { char stud_id[5]; char pwd[5]; } studentp; char answer; int i=5; stud_file = fopen("record","a+"); pass_file = fopen("pass","w"); while(i!=0) { printf("Enter the username \n"); scanf("%s",&studentp.stud_id); printf("Enter the password \n"); scanf("%s",&studentp.pwd); i=i-1; fwrite(&studentp, sizeof(struct studp), 1, pass_file); } answer = 'Y'; while (!(answer == 'N')) { printf("\nEnter Student ID : "); scanf("%s", &student.stud_id); printf("\nEnter DD no. : "); scanf("%s", &student.DD); printf("\nEnter amount paid : "); scanf("%s", &student.amount); rf=atoi(student.amount); printf("%d\n%d\n",rf,(fee-rf)); value=fee-rf; sprintf(student.ref,"%d",value); printf("%s\n",student.ref); fwrite(&student, sizeof(struct stud), 1, stud_file); printf("\n Do you want to insert another record ? Y/N"); scanf("%s", &answer); } fclose(stud_file); fclose(pass_file); return 0; } Client #include <ctype.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <sys/time.h> #include <sys/wait.h> #include <stdio.h> #include<string.h> #include <stdlib.h> #define SIZE sizeof(struct sockaddr_in) int main(void) { char try[5]; int sockfd; char c, rc,chk='0', d; char k='1'; struct stud { char stud_id[5]; char DD[5]; char amount[5]; char ref[5]; } student; struct studp { char stud_id[5]; char pwd[5]; } studentp; char msg [1024]; char msg1 [1024]; char msg2 [1024]; char msg3 [1024]; char msg4 [1024]; char msg5 [1024]; char msg6 [1024]; struct sockaddr_in server = {AF_INET, 7000}; /* convert and store the server's IP address */ server.sin_addr.s_addr = inet_addr("10.100.91.61"); /* set up the transport end point */ if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket call failed"); exit(1); } /* connect the socket to the server's address */ if ( connect (sockfd, (struct sockaddr *)&server, SIZE) == -1) { perror("connect call failed"); exit(1); } for(; if(recv(sockfd, msg4, sizeof(msg4), 0)<0){ printf("recieve failed"); continue; } else{ printf("%s \n",msg4); scanf("%s",&student.stud_id); if(send(sockfd,student.stud_id,sizeof(student.stud_id),0)>0) printf("sent %s",student.stud_id); } if(recv(sockfd, msg, sizeof(msg), 0)<0){ printf("recieve failed"); continue; } else{ printf("%s \n",msg); scanf("%s",msg); if(send(sockfd,msg,sizeof(msg),0)>0) printf("sent %s",msg); } recv(sockfd,&chk,1,0); if(chk =='1'){ printf("authentication success %c \n ",chk); if(recv(sockfd,msg,sizeof(msg),0)>0) { printf("%s",msg); getchar(); c=getchar(); } if(send(sockfd,&c,1,0)>0); //printf("sent %c \n",c); } else if(chk=='0'){ printf("Incorrect username or password %c \n",chk); continue; } break; } while(c!='3') { if(c=='1') { recv(sockfd,&rc,1,0); if(rc=='1') { recv(sockfd,(char *)&student, sizeof(student), 0); printf("%s %s %s \n",student.stud_id,student.DD,student.amount); } else if(rc=='0') { printf("First you need to register to check status\n"); } recv(sockfd,msg6,sizeof(msg6),0); printf("%s",msg6); getchar(); scanf("%c",&c); if(send(sockfd,&c,1,0)>0) printf("sent\n"); continue; } else if(c=='2') { printf("Enter the DD no\n"); getchar(); scanf("%s",try); strcpy(student.DD,try); printf("Enter the amount \n"); getchar(); scanf("%s",try); strcpy(student.amount,try); if(recv(sockfd,&rc,1,0)>0) printf("rec %c \n",rc); if(rc=='1') { printf("You cant register again,your regestration is already done,check in status \n"); recv(sockfd,msg6,sizeof(msg6),0); printf("%s",msg6); getchar(); scanf("%c",&c); if(send(sockfd,&c,1,0)>0) printf("sent\n"); continue; } else { send(sockfd,(char const *)&student, sizeof(student), 0); recv(sockfd,&k,1,0); printf("%c\n",k); if(k=='1') { recv(sockfd,(char *)&student, sizeof(student), 0); printf("<---------------------------------Receipt----------------------------------> \n"); printf("<-------StudentIDno-----------Demand Draftno--------Amountpaid--------Refund--------> \n"); printf("<-------%s--------------------%s--------------------%s----------------%s------------>",student.stud_id,student.DD,student.amount,student.ref); //printf("%s\n",student.stud_id); //printf("%s\n",student.DD); } else if(k=='0') { printf("The amount your trying to pay is less than the than required amount\n"); } } } recv(sockfd,msg6,sizeof(msg6),0); printf("%s",msg6); getchar(); scanf("%c",&c); if(send(sockfd,&c,1,0)>0) printf("sent\n"); } } server #include <ctype.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <signal.h> #include <string.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE sizeof(struct sockaddr_in) FILE *stud_file,*pass_file; struct stud { char stud_id[5]; char DD[5]; char amount[5]; char ref[5]; } student; struct studp { char stud_id[5]; char pwd[5]; } studentp; void catcher(int sig); char checkuserid(char c1[],char k1[]); char regst(void); char chkStatus(void); int newsockfd; char dump; char d; char msg[1024]; char msg1[1024]; char msg3[1024]; int fee=200,rf=0,value=0; int main(void) { int sockfd; char usr='0'; char c; char k; int control=22; char msg2[1024] = "Enter 1 for status Enter 2 for Reg Enter 3 for exit \n"; struct sockaddr_in server = {AF_INET, 7000, INADDR_ANY}; static struct sigaction act; act.sa_handler = catcher; sigfillset(&(act.sa_mask)); sigaction(SIGPIPE, &act, NULL); /* set up the transport end point */ if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket call failed"); exit(1); } /* bind an address to the end point */ if ( bind(sockfd, (struct sockaddr *)&server, SIZE) == -1) { perror("bind call failed"); exit(1); } /* start listening for incoming connections */ if ( listen(sockfd, 5) == -1 ) { perror("listen call failed"); exit(1) ; } for (; { /* accept a connection */ if ( (newsockfd = accept(sockfd, NULL, NULL)) == -1) { perror("accept call failed"); continue; } if ( fork() == 0) { while(usr=='0') { send(newsockfd, "Enter the user name", 19, 0); if(recv(newsockfd,msg,sizeof(msg),0)>0){ printf("%s \n",msg); } else printf("recieve failed"); send(newsockfd, "Enter the password", 18, 0); if(recv(newsockfd,msg1,sizeof(msg1),0)>0){ printf("%s \n",msg1); //getchar(); } else printf("recieve failed"); usr = checkuserid(msg,msg1); // printf("%c \n",usr); send(newsockfd,&usr,1,0); if(usr=='1'){ printf("done\n"); send(newsockfd,msg2 , sizeof(msg2), 0); if(recv(newsockfd,&c,1,0)>0) printf("%c \n",c); control=c-'0'; //printf("%d \n",control); } } while(control!=3){ switch(control) { case 1: dump=chkStatus(); break; case 2: dump=regst(); break; case 3: exit(1); } send(newsockfd,msg2 , sizeof(msg2), 0); if(recv(newsockfd,&c,1,0)>0) printf("%c \n",c); control=c-'0'; printf("%d \n",control); } // printf("OMG \n"); // while(1){ // printf("asdasd\n"); //} /* when client is no longer sending information the socket can be closed and the child process terminated */ close(newsockfd); exit (0); } /* parent doesn't need the newsockfd */ close(newsockfd); } } void catcher(int sig) { close(newsockfd); exit (0); } char checkuserid(char c1[],char k1[]) { printf("%s here %s\n",c1,k1); pass_file = fopen("pass","r"); fread(&studentp, sizeof(struct studp), 1, pass_file); while (!feof(pass_file)) { printf("%s here1 %s\n",c1,k1); if(strcmp(studentp.stud_id,c1)==0){ printf("%s here2 %s\n",c1,k1); if(strcmp(studentp.pwd,k1)==0){ printf("%s here3 %s \n",studentp.stud_id,studentp.pwd); return '1'; } } fread(&studentp, sizeof(struct studp), 1, pass_file); } return '0'; } char chkStatus() { stud_file = fopen("record","r"); if(stud_file==NULL) printf("error \n"); fread(&student, sizeof(struct stud), 1, stud_file); while (!feof(stud_file)) { if(strcmp(student.stud_id,msg)==0) { d='1'; send(newsockfd,&d ,1, 0); } else { d='0'; send(newsockfd,&d ,1, 0); return '0'; } fread(&student, sizeof(struct stud), 1, stud_file); } printf("student ID:%s \n",student.amount); send(newsockfd,(char const *)&student, sizeof(student), 0); fclose(stud_file); } char regst() { stud_file = fopen("record","a+"); if(stud_file==NULL) printf("error \n"); fread(&student, sizeof(struct stud), 1, stud_file); while (!feof(stud_file)) { if(strcmp(student.stud_id,msg)==0) { d='1'; send(newsockfd,&d ,1, 0); return '0'; } d='0'; fread(&student, sizeof(struct stud), 1, stud_file); } if(send(newsockfd,&d, 1, 0)>0) printf("sent %c \n",d); recv(newsockfd,(char *)&student, sizeof(student), 0); printf("%s %s %s \n",student.stud_id,student.DD,student.amount); rf=atoi(student.amount); if(fee-rf>0) send(newsockfd,"0",1,0); else if(fee-rf<=0) { send(newsockfd,"1",1,0); value=(rf-fee); sprintf(student.ref,"%d",value); send(newsockfd,(char const *)&student, sizeof(student), 0); fwrite(&student, sizeof(struct stud), 1, stud_file); printf("%s %s %s \n",student.stud_id,student.DD,student.amount); fclose(stud_file); return '1'; } } |
|
#10
|
|||
|
|||
|
suggest any corrections
suggest any corrections or new ideas
|
|||
| Google The UNIX and Linux Forums |