break;

msg->data[strlen(msg->data)-1] = '\0';

printf("cli:msg->data : %s \n", msg->data);

send(sockfd, msg, sizeof(MSG), 0);

recv(sockfd, msg, sizeof(MSG), 0);

printf("\n %s\n", msg->data);

}

return 0;

}

 

//用户注册

int usr_register(int sockfd, MSG *msg) {

msg->type = R;  

while(getchar() != '\n')

continue;

printf("register name: ");

fgets(msg->name, NAME_SIZE, stdin); //fgets函数会将'\n'也保存到数组中

if (strlen(msg->name) < 5){

printf("\n name is too short!\n");

return -1;

}

msg->name[strlen(msg->name)-1] = '\0'; //将数组中的‘\n'用‘\0’覆盖

printf("passwd: ");

fgets(msg->data, N, stdin);

msg->data[strlen(msg->data)-1] = '\0';

send(sockfd, msg, sizeof(MSG), 0); //向服务器发送注册信息

recv(sockfd, msg, sizeof(MSG), 0); //接收服务器的消息

printf("\n\t%s\n", msg->data);

return 0;

}

 

//用户登录

int login(int sockfd, MSG *msg) {

msg->type = L;

while(getchar() != '\n')

continue;

printf("login name: ");

fgets(msg->name, 32, stdin);

msg->name[strlen(msg->name)-1] = '\0';

printf("passwd: ");

fgets(msg->data, N, stdin);

msg->data[strlen(msg->data)-1] = '\0';

send(sockfd, msg, sizeof(MSG), 0);

recv(sockfd, msg, sizeof(MSG), 0);

printf("\n %s\n", msg->data);

if (strncmp(msg->data, "welcome", 7) == 0) //判断用户是否登录成功

return 1;

else

return 0;

//查询单词

int check_word(int sockfd, MSG *msg) {

msg->type = C;

while(getchar() != '\n')

continue;

while ( 1 ) {

printf("input (# to quit) > ");

fgets(msg->data, N, stdin);

if (msg->data[0] == '\n') //判断用户是否输入要查询的单词

continue;

if (strncmp(msg->data, "#", 1) == 0) //#退出

break;

msg->data[strlen(msg->data)-1] = '\0';

printf("msg->data : %s \n", msg->data);

send(sockfd, msg, sizeof(MSG), 0);

recv(sockfd, msg, sizeof(MSG), 0);

printf("\n %s\n", msg->data);

} return 0;

}

//查询历史记录

int history_record(int sockfd, MSG *msg) {

msg->type = H;

send(sockfd, msg, sizeof(MSG), 0);

while (recv(sockfd, msg, sizeof(MSG), 0) > 0) {

if (strncmp(msg->data, "ok", 2) == 0) //如果服务器返回‘ok’说明成功 break;

printf("%s\n", msg->data);

if (strncmp(msg->data, "error", 5) == 0)

上一篇:asp.net+sqlserver在线社区信息管理系统的设计
下一篇:学院教务管理系统Android版学生模块设计与实现

电子政务环境下公务员的...

架设Linux(2.6内核)的服务器集群【745字】

改善嵌入式Linux实时性能的方法研究【2067字】

搭建Linux桌面环境的影音平台【1261字】

Linux内核的键盘模拟实现【1538字】

使用http协议和winsockapi实现...

于PCI9656设备驱动程序的...

C#学校科研管理系统的设计

公寓空调设计任务书

志愿者活动的调查问卷表

神经外科重症监护病房患...

医院财务风险因素分析及管理措施【2367字】

承德市事业单位档案管理...

AT89C52单片机的超声波测距...

国内外图像分割技术研究现状

10万元能开儿童乐园吗,我...

中国学术生态细节考察《...