另有管理员功能(禁言,解除禁言,踢人),文件传输功能,快捷短语和表情,拍一拍,VIP等功能
myhead.h
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <arpa/inet.h>
#include <sqlite3.h>
#include<pthread.h>
#define SERVPORT 5001
struct message
{
int action;//log
char id[20];
char name[20];
char password[20];
char toid[20];
char text[500];
char filename[20];
char fabulous[20];
char V[20];
int flag;
};
void display_line();
void Interface();
void masterface();
void short_s(struct message*msg);
void ordface(struct message*msg);
void recv_file();
void *read_msg(void *arg);
int udp_init();
void *read_udp(void *arg);
client.c
#include "../../include/myhead.h"
void display_line()
{
system("clear");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
}
void Interface()
{
display_line();
printf("\t\t注册(reg)\n");
printf("\n");
printf("\t\t登陆(log)\n");
printf("\n");
printf("\t\t管理员登录(master)\n");
printf("\n");
printf("\t\t退出(end)\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\t请输入指令:\n");
}
void masterface()
{
display_line();
printf("\t\t禁言(ban)\n");
printf("\n");
printf("\t\t解除禁言(unban)\n");
printf("\n");
printf("\t\t踢人(expel)\n");
printf("\n");
printf("\t\t退出(ex)\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t\t请输入指令:\n");
}
void ordface(struct message*msg)
{
display_line();
printf("\t\t-.- %s:\n", msg->id);
printf("\n");
printf("\t\t查看在线用户(on)\n");
printf("\n");
printf("\t\t群发消息(group)\n");
printf("\n");
printf("\t\t发送悄悄话(sto)\n");
printf("\n");
printf("\t\t删除聊天记录(clean)\n");
printf("\n");
printf("\t\t查看聊天记录(vchat)\n");
printf("\n");
printf("\t\t上传文件(wfile)\n");
printf("\n");
printf("\t\t下载文件(rfile)\n");
printf("\n");
printf("\t\t拍一拍(pat)\n");
printf("\n");
printf("\t\t注册VIP(vip)\n");
printf("\n");
printf("\t\t注销当前用户(off)\n");
printf("\n");
printf("\t\t退出当前账号(quit)\n");
printf("\n");
printf("\t\t请输入指令:\n");
}
void recv_file(struct message*msg)
{
FILE* file = NULL;
printf("///%s///",msg->name);
file = fopen(msg->name ,"w");
// file = fopen("2.c" ,"w");
if(file == NULL)
{
printf("creatr file failure\n");
perror("create");
exit(-1);
}
printf("recv begin\n");
fprintf(file,"%s",msg->text);
// fprintf(file,"%c",buf[i]);
fclose(file);
}
void short_s(struct message*msg)
{
char buf[20] = {0};
memset(buf,0,sizeof(buf));
printf("\n\t\t请选择快捷语句(sen)或者表情(exp):");
scanf("%s",buf);
if(strcmp(buf,"sen") == 0)
{
memset(buf,0,sizeof(buf));
printf("\n\t\t1.早上好!\n");
printf("\n\t\t2.在吗?\n");
printf("\n\t\t3.我想你了!\n");
printf("\n\t\t请输入选择的句子序号:");
scanf("%s",buf);
if(strcmp(buf