Server client program

hi guys,
I need the code for a server client registration form.The server must ask for authentication .Then the client would send in data. This is stored in a file .The server sends back a receipt to the client as part of the payment done.

         plz can some 1 get me the code of this.............its urgent!!!

You need to read up on secure communications and cryptography. Check out gnutls for a nice framework for your app with plenty of examples.
GNU TLS Library - GNU Project - Free Software Foundation (FSF)

The code need not be sufficient. There is no prob even if there is security problem during attention. we will see to that. All i need is a code that works.
please guys reply fast

If you had more detailed requirements, maybe somebody would be willing to help you more. Writing code for you based on guesswork is nobody's idea of fun. Did you check out ramen_noodle's link? Did you notice it has plenty of examples?

A server must contain a file with some user names and passwords along with other variables for demand-draft no. and amount paid. A client is a student who gives user name and password. After checking both the server should prompt for status or edit. When asked for status we need to display the amount paid. If asked for edit we need to ask client for DD no. and amount that dd constitutes. finally edit the file and send back the details to client.
The file should around five accounts. All these must be stored in columns separated by tab. Many clients can login at the same time.

You mean on a web site? Or should this be a custom application? With a GUI, or just text-based?

What's a DD?

What i need is a simple c program executed with the help of sockets and file handling.
A dd is demand draft. consider it as a number an integer which is stored. It is just an integer which is used like the credit card number.

Sounds a lot like homework.

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\)&gt;0\) 
       \{ 
        printf\("%s",msg\);
        getchar\(\);
        c=getchar\(\);
        \}
        if\(send\(sockfd,&c,1,0\)&gt;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\)&gt;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\)&gt;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\)&gt;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 (;:wink:
{
/
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\)&gt;0\)\{
                       printf\("%s \\n",msg\);
                        \}
                       else  
                       printf\("recieve failed"\);

                       send\(newsockfd, "Enter the password", 18, 0\);
                       if\(recv\(newsockfd,msg1,sizeof\(msg1\),0\)&gt;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\)&gt;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\)&gt;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';
}

}

suggest any corrections or new ideas