Program:
// Client Program: sttcpc.c
#include<stdio.h>
#include<string.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<stdlib.h>
struct
{
int roll_no;
char name[20];
int mark;
}student;
main()
{
struct sockaddr_in client;
int s,flag,choice,shift,rollnumber,found,continu;
char buffer[20];
s=socket(AF_INET,SOCK_STREAM,0);
client.sin_family=AF_INET;
client.sin_port=2000;
client.sin_addr.s_addr=inet_addr("127.0.0.1");
connect(s,(struct sockaddr *)&client,sizeof client);
do{
printf("\n\t\t<<< STUDENT FILE MANAGEMENT SYSTEM>>>\n\t1 -> Store a new record in server\n\t2 -> Search a student record from server\nEnter your choice: ");
scanf("%d",&choice);
send(s,&choice,sizeof(int),0);
switch(choice)
{
case 1:
printf("\nEnter Student Details:\nRoll number (Integer): ");
scanf("%d",&student.roll_no);
printf("\nName : ");
scanf("%s",student.name);
printf("\nMark : ");
scanf("%d",&student.mark);
send(s,(const char*)&student,sizeof(student),0);
printf(" A student record has been sent successfully...\n");
printf("\n press 1 -> conitnue,\n\t 2 -> Exit: ");
scanf("%d",&shift);
send(s,&shift,sizeof(int),0);
if(shift==1)
break;
else if(shift==2)
{
continu=0;
break;
}
case 2:
printf("\nEnter Roll number: ");
scanf("%d",&rollnumber);
send(s,&rollnumber,sizeof(int),0);
recv(s,&found,sizeof(int),0);
if(found)
{
recv(s,(void *)&student,sizeof(student),0);
printf("\nThe record is found.\nRoll no: %d\nName: %s\nMark: %d \n",student.roll_no,student.name,student.mark);
}
else
{
printf("Not found...\n");
exit(0);
}
printf("\n press 1 -> conitnue,\n\t 2 -> Exit: ");
scanf("%d",&shift);
send(s,&shift,sizeof(int),0);
if(shift==1)
break;
else if(shift==2)
{
continu=0;
break;
}
default :
printf(" Bad choice...Exiting...\n");
continu=0;
break;
}
}while(continu!=0);
close(s);
}
// Server Program: sttcps.c
#include<stdio.h>
#include<string.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<stdlib.h>
struct
{
int roll_no;
char name[20];
int mark;
}student;
main()
{
int s,n,sock,choice,found,rollnumber,shift,continu;
char buffer[20];
FILE *fp;
struct sockaddr_in client,server;
s=socket(AF_INET,SOCK_STREAM,0);
server.sin_family=AF_INET;
server.sin_port=2000;
server.sin_addr.s_addr=inet_addr("127.0.0.1");
bind(s,(struct sockaddr *)&server,sizeof server);
listen(s,1);
n=sizeof client;
sock=accept(s,(struct sockaddr *)&client,&n);
printf("\n\t\t<<< STUDENT FILE MANAGEMENT SYSTEM>>>\n");
do{
recv(sock,&choice,sizeof(int),0);
switch(choice)
{
case 1 :
recv(sock,(void *)&student,sizeof(student),0);
printf("\nNew student record received is:%d %s %d \n",student.roll_no,student.name,student.mark);
fp=fopen("studentfile.txt","a+");
fprintf(fp,"\n%d\t%s\t%d\t",student.roll_no,student.name,student.mark);
fclose(fp);
printf(" A student record has been added successfully...\n");
recv(sock,&shift,sizeof(int),0);
if(shift==1)
break;
else if(shift==2)
{
continu=0;
break;
}
case 2:
recv(sock,&rollnumber,sizeof(int),0);
printf("Searching record with rollnumber=%d.\n",rollnumber);
found=0;
if((fp=fopen("studentfile.txt","r"))==NULL)
{
printf(" ! The File is Empty...\n\n");
send(sock,&found,sizeof(int),0);
}
else
{
while(!feof(fp)&& found==0)
{
fscanf(fp,"\n%d\t%s\t%d\t",&student.roll_no,student.name,&student.mark);
if(student.roll_no==rollnumber)
found=1;
}
send(sock,&found,sizeof(int),0);
fclose(fp);
if(found)
{
printf(" Record found...\n");
send(sock,(const char*)&student,sizeof(student),0);
}
else
{
printf(" Record not found...Exiting\n");
exit(0);
}
}
recv(sock,&shift,sizeof(int),0);
if(shift==1)
break;
else if(shift==2)
{
continu=0;
break;
}
default :
printf(" Bad request...Exiting...\n");
continu=0;
break;
}
}while(continu!=0);
close(sock);
close(s);
}
Output:
Terminal 1: (Client)
nn@linuxmint ~ $ gcc sttcpc.c -o client
nn@linuxmint ~ $ ./client
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 1
Enter Student Details:
Roll number (Integer): 1
Name : nidheesh
Mark : 45
A student record has been sent successfully...
press 1 -> conitnue,
2 -> Exit: 1
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 1
Enter Student Details:
Roll number (Integer): 2
Name : nithin
Mark : 45
A student record has been sent successfully...
press 1 -> conitnue,
2 -> Exit: 1
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 1
Enter Student Details:
Roll number (Integer): 3
Name : asish
Mark : 45
A student record has been sent successfully...
press 1 -> conitnue,
2 -> Exit: 1
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 2
Enter Roll number: 3
The record is found.
Roll no: 3
Name: asish
Mark: 45
press 1 -> conitnue,
2 -> Exit: 1
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 2
Enter Roll number: 5
Not found...
nn@linuxmint ~ $
Terminal 2: (Server)
nn@linuxmint ~ $ gcc sttcps.c -o server
nn@linuxmint ~ $ ./server
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
New student record received is:1 nidheesh 45
A student record has been added successfully...
New student record received is:2 nithin 45
A student record has been added successfully...
New student record received is:3 asish 45
A student record has been added successfully...
Searching record with rollnumber=3.
Record found...
Searching record with rollnumber=5.
Record not found...Exiting
nn@linuxmint ~ $
File : studentfile.txt
1 nidheesh 45
2 nithin 45
3 asish 45
// Client Program: sttcpc.c
#include<stdio.h>
#include<string.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<stdlib.h>
struct
{
int roll_no;
char name[20];
int mark;
}student;
main()
{
struct sockaddr_in client;
int s,flag,choice,shift,rollnumber,found,continu;
char buffer[20];
s=socket(AF_INET,SOCK_STREAM,0);
client.sin_family=AF_INET;
client.sin_port=2000;
client.sin_addr.s_addr=inet_addr("127.0.0.1");
connect(s,(struct sockaddr *)&client,sizeof client);
do{
printf("\n\t\t<<< STUDENT FILE MANAGEMENT SYSTEM>>>\n\t1 -> Store a new record in server\n\t2 -> Search a student record from server\nEnter your choice: ");
scanf("%d",&choice);
send(s,&choice,sizeof(int),0);
switch(choice)
{
case 1:
printf("\nEnter Student Details:\nRoll number (Integer): ");
scanf("%d",&student.roll_no);
printf("\nName : ");
scanf("%s",student.name);
printf("\nMark : ");
scanf("%d",&student.mark);
send(s,(const char*)&student,sizeof(student),0);
printf(" A student record has been sent successfully...\n");
printf("\n press 1 -> conitnue,\n\t 2 -> Exit: ");
scanf("%d",&shift);
send(s,&shift,sizeof(int),0);
if(shift==1)
break;
else if(shift==2)
{
continu=0;
break;
}
case 2:
printf("\nEnter Roll number: ");
scanf("%d",&rollnumber);
send(s,&rollnumber,sizeof(int),0);
recv(s,&found,sizeof(int),0);
if(found)
{
recv(s,(void *)&student,sizeof(student),0);
printf("\nThe record is found.\nRoll no: %d\nName: %s\nMark: %d \n",student.roll_no,student.name,student.mark);
}
else
{
printf("Not found...\n");
exit(0);
}
printf("\n press 1 -> conitnue,\n\t 2 -> Exit: ");
scanf("%d",&shift);
send(s,&shift,sizeof(int),0);
if(shift==1)
break;
else if(shift==2)
{
continu=0;
break;
}
default :
printf(" Bad choice...Exiting...\n");
continu=0;
break;
}
}while(continu!=0);
close(s);
}
// Server Program: sttcps.c
#include<stdio.h>
#include<string.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<stdlib.h>
struct
{
int roll_no;
char name[20];
int mark;
}student;
main()
{
int s,n,sock,choice,found,rollnumber,shift,continu;
char buffer[20];
FILE *fp;
struct sockaddr_in client,server;
s=socket(AF_INET,SOCK_STREAM,0);
server.sin_family=AF_INET;
server.sin_port=2000;
server.sin_addr.s_addr=inet_addr("127.0.0.1");
bind(s,(struct sockaddr *)&server,sizeof server);
listen(s,1);
n=sizeof client;
sock=accept(s,(struct sockaddr *)&client,&n);
printf("\n\t\t<<< STUDENT FILE MANAGEMENT SYSTEM>>>\n");
do{
recv(sock,&choice,sizeof(int),0);
switch(choice)
{
case 1 :
recv(sock,(void *)&student,sizeof(student),0);
printf("\nNew student record received is:%d %s %d \n",student.roll_no,student.name,student.mark);
fp=fopen("studentfile.txt","a+");
fprintf(fp,"\n%d\t%s\t%d\t",student.roll_no,student.name,student.mark);
fclose(fp);
printf(" A student record has been added successfully...\n");
recv(sock,&shift,sizeof(int),0);
if(shift==1)
break;
else if(shift==2)
{
continu=0;
break;
}
case 2:
recv(sock,&rollnumber,sizeof(int),0);
printf("Searching record with rollnumber=%d.\n",rollnumber);
found=0;
if((fp=fopen("studentfile.txt","r"))==NULL)
{
printf(" ! The File is Empty...\n\n");
send(sock,&found,sizeof(int),0);
}
else
{
while(!feof(fp)&& found==0)
{
fscanf(fp,"\n%d\t%s\t%d\t",&student.roll_no,student.name,&student.mark);
if(student.roll_no==rollnumber)
found=1;
}
send(sock,&found,sizeof(int),0);
fclose(fp);
if(found)
{
printf(" Record found...\n");
send(sock,(const char*)&student,sizeof(student),0);
}
else
{
printf(" Record not found...Exiting\n");
exit(0);
}
}
recv(sock,&shift,sizeof(int),0);
if(shift==1)
break;
else if(shift==2)
{
continu=0;
break;
}
default :
printf(" Bad request...Exiting...\n");
continu=0;
break;
}
}while(continu!=0);
close(sock);
close(s);
}
Output:
Terminal 1: (Client)
nn@linuxmint ~ $ gcc sttcpc.c -o client
nn@linuxmint ~ $ ./client
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 1
Enter Student Details:
Roll number (Integer): 1
Name : nidheesh
Mark : 45
A student record has been sent successfully...
press 1 -> conitnue,
2 -> Exit: 1
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 1
Enter Student Details:
Roll number (Integer): 2
Name : nithin
Mark : 45
A student record has been sent successfully...
press 1 -> conitnue,
2 -> Exit: 1
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 1
Enter Student Details:
Roll number (Integer): 3
Name : asish
Mark : 45
A student record has been sent successfully...
press 1 -> conitnue,
2 -> Exit: 1
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 2
Enter Roll number: 3
The record is found.
Roll no: 3
Name: asish
Mark: 45
press 1 -> conitnue,
2 -> Exit: 1
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
1 -> Store a new record in server
2 -> Search a student record from server
Enter your choice: 2
Enter Roll number: 5
Not found...
nn@linuxmint ~ $
Terminal 2: (Server)
nn@linuxmint ~ $ gcc sttcps.c -o server
nn@linuxmint ~ $ ./server
<<< STUDENT FILE MANAGEMENT SYSTEM>>>
New student record received is:1 nidheesh 45
A student record has been added successfully...
New student record received is:2 nithin 45
A student record has been added successfully...
New student record received is:3 asish 45
A student record has been added successfully...
Searching record with rollnumber=3.
Record found...
Searching record with rollnumber=5.
Record not found...Exiting
nn@linuxmint ~ $
File : studentfile.txt
1 nidheesh 45
2 nithin 45
3 asish 45
great work...thanks...
ReplyDeleteThis blog is really amazing this is of much helpful for us .Visit here : computer ups price
ReplyDeleteThanks For sharing Information. it will help gain knowledge. Especia Associates provide Accounts Payable Services . We at Especia are here to do just that- help you with keeping up your books and explain and advise on numbers to make your business thrive and grow. if you need Accounts Payable Services Call at 9310165114 or visit us Accounts Payable Services
ReplyDeleteNice Blog with useful information. The server management plan comes with round the clock support. You can open a support ticket to us at any time of the day or night, and we will be here to make sure that everything runs perfectly to your satisfaction. For More Details visit on our website.
ReplyDeleteInformative and helpful Article. Really good work. Appreciate it. You might be looking for ERP Software Solutions
ReplyDeleteThank you for sharing such important information but I would like to add that ZircoDATA is one of the leading Document and <a href="https://www.zircodata.com.au”>
ReplyDeleteRecord Information Management Solution </a> Companies in Australia. Providing tailored information governance, document scanning, secure storage & records management, digital mailroom, and translation services.
Partner with hisabkitab and experience the best accounting services for small businesses in Surat. Focus on what you do best – running your business – and leave the financial intricacies to us. Contact us today to schedule a consultation and take the first step towards financial success!
ReplyDelete