基于linux socket 简单学生信息管理系统client程序
来源:互联网 发布:阿三搞笑知乎 编辑:程序博客网 时间:2024/04/28 05:15
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<netdb.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
//#include<conio.h>
#include<memory.h>
#define SERVPORT 3333
#define MAXDATASIZE 100
char recv_error_buf[20];
char slect_cmd;
char name2[20];
char cha;
char yorn;
struct student
{
char name[10];
int age;
int height;
char sex;
}send_stu,recv_stu;
struct cmd_data
{
char ch;
struct student stt;
}cmd;
typedef struct NODE
{
struct student std;
struct NODE *next;
}node;
char menu()
{ char cha;
system("cls");
printf("student management system!\n");
printf("\t\ti.insert student information:\n");
printf("\t\tp.output all students information:\n");
printf("\t\ts.serarch student information:\n");
printf("\t\td.delete student information:\n");
printf("\t\te.exit system:\n");
scanf("%c",&slect_cmd);
cha=slect_cmd;
// if(slect_cdm>0||slect_num<10)
return (cha);
}
struct student getstu()
{
struct student stu;
char name[10];
printf("please input name:\n");
scanf("%s",name);
strcpy(stu.name,name);
printf("please input age:\n");
scanf("%d",&stu.age);
printf("please input height:\n");
scanf("%d",&stu.height);
printf("please input sex:\n");
scanf("%c",&stu.sex);
scanf("%c",&stu.sex);
return(stu);
}
main(int argc ,char *argv[])
{node recv_from_s;
int sockfd,sendbytes,recvbytes;
char buf[MAXDATASIZE];
struct hostent *host;
struct sockaddr_in serv_addr;
if(argc<2)
{
fprintf(stderr ,"please enter the server's hostname!\n");
exit(1);
}
if((host=gethostbyname(argv[1]))==NULL)
{
perror("gethostbyname");
exit(1);
}
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("socket");
exit(1);
}
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(3333);
serv_addr.sin_addr=*((struct in_addr *)host->h_addr);
bzero(&(serv_addr.sin_zero),8);
if(connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))==-1)
{
perror("connect");
exit(1);
}
// memset(&send_stuv,0,sizeof(struct student));
while(1)
{
printf("student management system!\n");
printf("\t\ti.insert student information:\n");
printf("\t\tp.output all students information:\n");
printf("\t\ts.serarch student information:\n");
printf("\t\td.delete student information:\n");
printf("\t\te.exit system:\n");
// printf("please slect num:\n");
scanf("%c",&cha);
memset(&cmd,0,sizeof(struct cmd_data));
memset(&recv_from_s,0,sizeof(node));
// char scanf_ch=menu();
switch(cha)
{
//insert_from_head
case 'i':send_stu=getstu();
cmd.ch='i';
strcpy(cmd.stt.name,send_stu.name);
cmd.stt.age=send_stu.age;
cmd.stt.height=send_stu.height;
cmd.stt.sex=send_stu.sex;
if((sendbytes=send(sockfd,&cmd,sizeof(struct cmd_data),0))==-1)
{
perror("send");
exit(1);
}
break;
//search_by_name
case 's':printf("please input name\n");
scanf("%s",name2);
cmd.ch='s';
strcpy(cmd.stt.name,name2);
if((sendbytes=send(sockfd,&cmd,sizeof(struct cmd_data),0))==-1)
{
perror("send");
exit(1);
}
if((recvbytes=recv(sockfd,&recv_from_s,sizeof(node),0))==-1)
{
perror("recv");
}
printf("%s\t\t%d\t%d\t%c\t\n",\
recv_from_s.std.name,recv_from_s.std.age,recv_from_s.std.height,recv_from_s.std.sex);
break;
//delete
case 'd':printf("please input name\n");
scanf("%s",name2);
printf("%s\n",name2);
strcpy(cmd.stt.name,name2);
cmd.ch='d';
// strcpy(cmd.stt.name,send_stu.name);
if((sendbytes=send(sockfd,&cmd,sizeof(struct cmd_data),0))==-1)
{
perror("send");
exit(1);
}
break;
case'p':cmd.ch='p';
if((sendbytes=send(sockfd,&cmd,sizeof(struct cmd_data),0))==-1)
{
perror("send");
}
printf("name\t\tage\theight\tsex\t\n");
do{
if((recvbytes=recv(sockfd,&recv_from_s,sizeof(node),0))==-1)
{
perror("recv");
}
printf("%s\t\t%d\t%d\t%c\t\n",\
recv_from_s.std.name,recv_from_s.std.age,recv_from_s.std.height,recv_from_s.std.sex);
}while((&recv_from_s)->next==NULL);
break;
case'e':exit(0);
// break;
default:break;
// exit(1);
// menu();
}
// if((recvbytes=recv(sockfd,&recv_error_buf,20,0))==-1)
// printf("%s\n",recv_error_buf);
}
/*
if((recvbytes=recv(sockfd,&recv_stu,sizeof(struct student),0))==-1)
{
perror("recv");
exit(1);
}
// clrscr();
system("cls");
printf("client:\n");
printf("name=%s\nage=%d\nheight=%d\nsex=%c\n",recv_stu.name,recv_stu.age,recv_stu.height,recv_stu.sex);
// send_stu=getstu();
// strcpy(send_buf,send_stu);
/*
if((recvbytes=recv(sockfd,&recv_stu,sizeof(struct student),0))==-1)
{
perror("recv");
exit(1);
}
*/
// printf("name=%s\nage=%d\nheight=%d\nsex=%c\n",recv_stu.name,recv_stu.age,recv_stu.height,recv_stu.sex);
/*
if((sendbytes=send(sockfd,&send_stu,sizeof(struct student),0))==-1)
{
perror("send");
exit(1);
}
*/
close(sockfd);
}
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<netdb.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
//#include<conio.h>
#include<memory.h>
#define SERVPORT 3333
#define MAXDATASIZE 100
char recv_error_buf[20];
char slect_cmd;
char name2[20];
char cha;
char yorn;
struct student
{
char name[10];
int age;
int height;
char sex;
}send_stu,recv_stu;
struct cmd_data
{
char ch;
struct student stt;
}cmd;
typedef struct NODE
{
struct student std;
struct NODE *next;
}node;
char menu()
{ char cha;
system("cls");
printf("student management system!\n");
printf("\t\ti.insert student information:\n");
printf("\t\tp.output all students information:\n");
printf("\t\ts.serarch student information:\n");
printf("\t\td.delete student information:\n");
printf("\t\te.exit system:\n");
scanf("%c",&slect_cmd);
cha=slect_cmd;
// if(slect_cdm>0||slect_num<10)
return (cha);
}
struct student getstu()
{
struct student stu;
char name[10];
printf("please input name:\n");
scanf("%s",name);
strcpy(stu.name,name);
printf("please input age:\n");
scanf("%d",&stu.age);
printf("please input height:\n");
scanf("%d",&stu.height);
printf("please input sex:\n");
scanf("%c",&stu.sex);
scanf("%c",&stu.sex);
return(stu);
}
main(int argc ,char *argv[])
{node recv_from_s;
int sockfd,sendbytes,recvbytes;
char buf[MAXDATASIZE];
struct hostent *host;
struct sockaddr_in serv_addr;
if(argc<2)
{
fprintf(stderr ,"please enter the server's hostname!\n");
exit(1);
}
if((host=gethostbyname(argv[1]))==NULL)
{
perror("gethostbyname");
exit(1);
}
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("socket");
exit(1);
}
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(3333);
serv_addr.sin_addr=*((struct in_addr *)host->h_addr);
bzero(&(serv_addr.sin_zero),8);
if(connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))==-1)
{
perror("connect");
exit(1);
}
// memset(&send_stuv,0,sizeof(struct student));
while(1)
{
printf("student management system!\n");
printf("\t\ti.insert student information:\n");
printf("\t\tp.output all students information:\n");
printf("\t\ts.serarch student information:\n");
printf("\t\td.delete student information:\n");
printf("\t\te.exit system:\n");
// printf("please slect num:\n");
scanf("%c",&cha);
memset(&cmd,0,sizeof(struct cmd_data));
memset(&recv_from_s,0,sizeof(node));
// char scanf_ch=menu();
switch(cha)
{
//insert_from_head
case 'i':send_stu=getstu();
cmd.ch='i';
strcpy(cmd.stt.name,send_stu.name);
cmd.stt.age=send_stu.age;
cmd.stt.height=send_stu.height;
cmd.stt.sex=send_stu.sex;
if((sendbytes=send(sockfd,&cmd,sizeof(struct cmd_data),0))==-1)
{
perror("send");
exit(1);
}
break;
//search_by_name
case 's':printf("please input name\n");
scanf("%s",name2);
cmd.ch='s';
strcpy(cmd.stt.name,name2);
if((sendbytes=send(sockfd,&cmd,sizeof(struct cmd_data),0))==-1)
{
perror("send");
exit(1);
}
if((recvbytes=recv(sockfd,&recv_from_s,sizeof(node),0))==-1)
{
perror("recv");
}
printf("%s\t\t%d\t%d\t%c\t\n",\
recv_from_s.std.name,recv_from_s.std.age,recv_from_s.std.height,recv_from_s.std.sex);
break;
//delete
case 'd':printf("please input name\n");
scanf("%s",name2);
printf("%s\n",name2);
strcpy(cmd.stt.name,name2);
cmd.ch='d';
// strcpy(cmd.stt.name,send_stu.name);
if((sendbytes=send(sockfd,&cmd,sizeof(struct cmd_data),0))==-1)
{
perror("send");
exit(1);
}
break;
case'p':cmd.ch='p';
if((sendbytes=send(sockfd,&cmd,sizeof(struct cmd_data),0))==-1)
{
perror("send");
}
printf("name\t\tage\theight\tsex\t\n");
do{
if((recvbytes=recv(sockfd,&recv_from_s,sizeof(node),0))==-1)
{
perror("recv");
}
printf("%s\t\t%d\t%d\t%c\t\n",\
recv_from_s.std.name,recv_from_s.std.age,recv_from_s.std.height,recv_from_s.std.sex);
}while((&recv_from_s)->next==NULL);
break;
case'e':exit(0);
// break;
default:break;
// exit(1);
// menu();
}
// if((recvbytes=recv(sockfd,&recv_error_buf,20,0))==-1)
// printf("%s\n",recv_error_buf);
}
/*
if((recvbytes=recv(sockfd,&recv_stu,sizeof(struct student),0))==-1)
{
perror("recv");
exit(1);
}
// clrscr();
system("cls");
printf("client:\n");
printf("name=%s\nage=%d\nheight=%d\nsex=%c\n",recv_stu.name,recv_stu.age,recv_stu.height,recv_stu.sex);
// send_stu=getstu();
// strcpy(send_buf,send_stu);
/*
if((recvbytes=recv(sockfd,&recv_stu,sizeof(struct student),0))==-1)
{
perror("recv");
exit(1);
}
*/
// printf("name=%s\nage=%d\nheight=%d\nsex=%c\n",recv_stu.name,recv_stu.age,recv_stu.height,recv_stu.sex);
/*
if((sendbytes=send(sockfd,&send_stu,sizeof(struct student),0))==-1)
{
perror("send");
exit(1);
}
*/
close(sockfd);
}
- 基于linux socket 简单学生信息管理系统client程序
- 基于linux socket 简单学生信息管理系统server程序
- 程序阅读:简单C++学生信息管理系统
- 基于linux下的学生信息管理系统
- 简单学生信息管理系统
- Linux环境下C语言实现简单的基于文件的学生信息管理系统
- 基于Xpath的简单的学生信息管理系统
- 第九周阅读程序简单的学生信息管理系统
- <我的C++程序>简单的学生信息管理系统
- 简单的学生信息管理系统
- 简单的学生信息管理系统
- 简单的学生信息管理系统
- 基于 appfuse 的学生信息管理系统
- 基于文件的学生信息管理系统
- 基于C++的学生信息管理系统
- 基于QT的学生信息管理系统开发
- 基于JavaSwing+MySql的学生信息管理系统
- 基于struts2开发的学生信息管理系统
- J2EE总结:Java命名与目录接口JNDI
- 【转】ASP.NET部署ckeditor_3.6.2及插件ckfinder_aspnet_2.1
- Linux 内核驱动模型
- PDFMaker文件遗失怎么办,Word不能转PDF文件
- 基于linux socket 简单学生信息管理系统server程序
- 基于linux socket 简单学生信息管理系统client程序
- python笔记《1》
- 动画(Animation) 之 (闪烁、左右摇摆、上下晃动等效果)
- InternetCrackUrl
- StrongReference、SoftReference、WeakReference、PhantomReference
- 一些错误及凌乱知识
- 约瑟夫问题的数学解法
- eclipse项目中出现红色大感叹号
- 传智播客——struts2提供的校验器列表(黎活明主讲4)