C网络编程项目 图书馆借阅系统 客户端

#include "../../include/cli.h"

char ret_buf[200];
char buf[200];
void login_menu()
{
	puts("--------1.登录--------");
	puts("--------2.注册--------");
	puts("--------0.退出--------");
}
void book_menu()
{
	printf("--------1.查看图书信息--------\n");
	printf("--------2.增加图书信息--------\n");
	printf("--------3.删除图书信息--------\n");
	printf("--------4.更改图书信息--------\n");
	printf("--------0.退出--------\n");
}
int do_work(int connfd)
{
	if(connfd < 0)
	{
		puts("connfd < 0");
		return -1;
	}
	int op;
	int ret = -1;
	while(1)
	{
		char log[50] = "log:";
		char reg[50] = "reg:";
		login_menu();
		scanf("%d",&op);
		memset(buf, 0, sizeof(buf));
		if(1 == op)
		{
			printf("请输入六位账号密码\n");
			scanf("%s",buf);
			if(strlen(buf) < 13)
			{
				printf("输入不规范请重新输入\n");
				continue;
			}
			strcat(log,buf);
			send(connfd, log, sizeof(log), 0);
			memset(ret_buf,0,sizeof(ret_buf));
			ret = recv(connfd,ret_buf,sizeof(ret_buf),0);
			if(strcmp(ret_buf,"success") == 0)
			{
				puts("登录成功,进入操作界面");
				operation_book(connfd);
			}
			if(strcmp(ret_buf,"error") == 0)
			{
				puts("密码错误,请重试");
				continue;
			}
		}
		else if(2 == op)
		{
			memset(buf, 0, sizeof(buf));
			puts("请输入注册的账号、密码(均为六位)");
			scanf("%s",buf);
			if(strlen(buf) < 13)
			{
				printf("输入不规范请重新输入\n");
				continue;
			}
			strcat(reg,buf);
			send(connfd, reg, sizeof(reg), 0);
			memset(ret_buf,0,sizeof(ret_buf));
			ret = recv(connfd,ret_buf,sizeof(ret_buf),0);
			if(strcmp(ret_buf,"reg_success") == 0)
			{
				printf("注册完成\n");
				continue;
			}
		}
		else if(0 == op)
		{
			puts("退出");
			break;
		}
	}
	return 0;
}
int operation_book(int connfd)
{
	if(connfd < 0)
	{
		puts("connfd < 0");
		return -1;
	}
	int op = -1;
	int ret = -1;
	char buf[255];
	char ret_buf[255];
	while(1)
	{
		char add[50] = "add:";
		char del[50] = "del:";
		char sek[50] = "sek:";
		char rev[50] = "rev:";
		book_menu();
		scanf("%d",&op);
		if(1 == op)
		{
			printf("请输入需要查找书籍的六位ID码\n");
			memset(buf, 0, sizeof(buf));
			scanf("%s",buf);
			strcat(sek,buf);
			send(connfd,sek,sizeof(sek),0);
			ret = recv(connfd,ret_buf,sizeof(ret_buf),0);
			if(ret > 0 )
			{
				puts(ret_buf);
			}
			else if(0 == ret)
			{
				puts("数据获取完毕");
				break;
			}
		}
		else if(2 == op)
		{
			printf("请输入需要写入的图书信息\n");
			scanf("%s",buf);
			strcat(add,buf);
			send(connfd,add,sizeof(add),0);
			memset(ret_buf,0,sizeof(ret_buf));
			ret = recv(connfd,ret_buf,sizeof(ret_buf),0);
			if(strcmp(ret_buf,"success") == 0)
			{
				puts("写入成功");
			}
		}
		else if(3 == op)
		{
			printf("请输入需要删除的书籍的ID\n");
			scanf("%s",buf);
			strcat(del,buf);
			send(connfd,del,sizeof(del),0);
			memset(ret_buf,0,sizeof(ret_buf));
			ret = recv(connfd,ret_buf,sizeof(ret_buf),0);
			if(ret > 0)
			{
				if(strcmp(ret_buf,"success") == 0)
				{
					puts("删除成功");
				}
				puts(ret_buf);
			}
		}
		else if(4 == op)
		{
			printf("请输入需要修改的书籍的ID及信息\n");
			scanf("%s",buf);
			strcat(rev,buf);
			send(connfd,rev,sizeof(rev),0);
			memset(ret_buf,0,sizeof(ret_buf));
			ret = recv(connfd,ret_buf,sizeof(ret_buf),0);
			if(ret > 0)
			{
				if(strcmp(ret_buf,"success") == 0)
				{
					puts("修改成功");
				}
				puts(ret_buf);
			}
		}
		else
		{
			printf("即将退出\n");
			break;
		}
	}
}
#include "../../include/cli.h"


int main()
{
	int sockfd = socket(AF_INET, SOCK_STREAM, 0);
	if(sockfd < 0)
	{
		puts("socket error.");
		return -1;
	}

	struct sockaddr_in myser;
	myser.sin_family = AF_INET;
	myser.sin_port = htons(8888);
	myser.sin_addr.s_addr = inet_addr("127.0.0.1");

	int ret = connect(sockfd, (struct sockaddr *)&myser, sizeof(myser));
	if(ret != 0)
	{
		puts("connect error.");
		close(sockfd);
		return -1;
	}
	puts("connect success.");

	do_work(sockfd);
	close(sockfd);
	return 0;
}

客户端相比于服务器就比较简单,主要是发送请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值