C语言网络聊天室——客户端

 另有管理员功能(禁言,解除禁言,踢人),文件传输功能,快捷短语和表情,拍一拍,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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值