毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

Linux下在线词典的实现(3)

时间:2020-07-21 20:39来源:毕业论文
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; } //用户注

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)

Linux下在线词典的实现(3):http://www.youerw.com/jisuanji/lunwen_56755.html
------分隔线----------------------------
推荐内容