资源简介
网络聊天室源码,有需要的可以下载下来看一下,实现的功能有群聊私聊,管理员模式,禁言模式,并附Mysql数据库API
代码片段和文件信息
/*************************************************************************
> File Name: client.c
> Author:
> Mail:
> Created Time: 2019年11月18日 星期一 09时38分35秒
************************************************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
/*全局变量定义区*/
#define PORT 6666
#define IP “127.0.0.1“
int num_bflognum = 0;
int retsocknewlensockid;
pthread_attr_t attr;
struct sockaddr_in Chat_inf;
pthread_t pthid_creatpthid_loginpthid_forgetpthid_wpthid_rpthid_leavepthid_onpthid_grouppthid_privatepthid_allpthid_Rpthid_his;
struct HIS{
char history[256];//历史消息
int num;//功能类型
int flag;//私聊回复
int GC;//群聊标志位
int PC;//私聊标志位
char Me[20];//客户端ID
char object[10];//私聊对象/群聊中禁言对象
int JY;//申请标志位(1为未同意0为同意)
};
struct HIS Note;
struct INF{
char name[20];//昵称(名字是root或者是ROOT的昵称代表是管理员)
char pwd[10];//密码
char pwd_mark[100];//密保问题
char pwd_point[100];//密保答案
int power;//登录成功的标志(1在线0离线)
int sock;//登录时的通信套接字
};
struct INF inf;//详细信息结构体
/*子函数定义区*/
void list_1(void);//登录注册界面的显示函数
void list_2(void);//主界面的显示函数
void *Create_account(void* arg);//创建账号
void *Log_in(void* arg);//帐号密码登录
void *Forget_pwd(void* arg);//忘记密码
void *Read(void* arg);//读进程
void *Write(void* arg);//写进程
void *Group_chat(void* arg);//群聊
void *Private_chat(void* arg);//私聊申请
void *On_line(void* arg);//此时在线人数
void *Off_line(void* arg);//离线
void *All(void* arg);//list2有东西就接受
void *Peron(void* arg);//私聊函数
void *READ(void* arg);//私聊读函数
void *Group_history(void* arg);//群聊历史消息
void list_1(void)
{
printf(“1.注册帐号\n“);
printf(“2.帐号密码登录\n“);
printf(“3.忘记密码\n“);
printf(“0.退出系统\n“);
}
void list_2(void)
{
printf(“********************\n“);
printf(“用户:%s 欢迎您的使用!\n“inf.name);
printf(“********************\n“);
printf(“4.显示当前在线\n“);
printf(“5.群聊\n“);
printf(“6.私聊\n“);
printf(“7.离线\n“);
printf(“8.查看申请消息\n“);
printf(“9.清屏\n“);
printf(“10.查看历史群聊记录\n“);
}
void *Create_account(void* arg)
{
int fd = *(int *)arg;
int flag;
int boom;
int shark = 0;
char Account[20]={0};
send(fd&Notesizeof(Note)0);
printf(“欢迎进入账户注册\n“);
Name:
printf(“请创建昵称\n“);
scanf(“%s“inf.name);
/* send(fd&inf.namesizeof(inf.name)0);
recv(fdAccountsizeof(Account)0);
if(strcmp(inf.nameAccount) == 0)
{
printf(“该昵称已被占用\n“);
shark = 1;
send(fd&sharksizeof(int)0);
goto Name;
}
shark = 0;
send(fd&sharksizeof(int)0);
*/
printf(“请创建密码\n“);
scanf(“%s“inf.pwd);
/* printf(“请选择是否设置密保\n1.设置\n2.跳过\n“);
scanf(“%d“&flag);
if(flag == 2)
{
printf(“正在跳过密保设置\n“);
goto JUMP;
}
*/
printf(“请设置密保问
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 19024 2019-11-26 11:59 网络聊天室源代码\chat\c
文件 14963 2019-12-26 19:34 网络聊天室源代码\chat\client.c
文件 81 2019-11-25 09:46 网络聊天室源代码\chat\makefile
文件 23208 2019-11-26 11:59 网络聊天室源代码\chat\s
文件 15957 2019-12-26 19:39 网络聊天室源代码\chat\server.c
文件 157 2019-12-23 20:02 网络聊天室源代码\chatroom_ESC\1.txt
文件 21984 2019-12-23 20:02 网络聊天室源代码\chatroom_ESC\a.out
文件 18744 2019-12-23 20:02 网络聊天室源代码\chatroom_ESC\c
文件 13561 2019-12-23 20:02 网络聊天室源代码\chatroom_ESC\client.c
文件 22616 2019-12-23 20:02 网络聊天室源代码\chatroom_ESC\s
文件 35029 2019-12-23 20:02 网络聊天室源代码\chatroom_ESC\server.c
文件 1328 2019-12-19 11:08 网络聊天室源代码\苏晓东\all.h
文件 24612 2019-12-24 11:33 网络聊天室源代码\苏晓东\client.c
文件 1277 2019-12-23 15:21 网络聊天室源代码\苏晓东\readme.txt
文件 15546 2019-12-24 16:42 网络聊天室源代码\苏晓东\server.c
目录 0 2019-12-26 19:30 网络聊天室源代码\chat
目录 0 2019-12-23 21:14 网络聊天室源代码\chatroom_ESC
目录 0 2019-12-25 16:19 网络聊天室源代码\苏晓东
目录 0 2019-12-26 19:30 网络聊天室源代码
----------- --------- ---------- ----- ----
228087 19
- 上一篇:一个简单的LabVIEW 登录界面
- 下一篇:简易人事管理系统pyqt5+mysql
相关资源
- linux_mysql5.1.66x86_64.zip
- Oracle Linux 6.8 x86_64
- IBM 和 Linux 助Structural Bioinformatics 支持
- oracle instant client
- sqluldr2,版本4.0.1,包含windows和linux版
- CentOS7_x64_1804离线安装Oracle11g_R2_x64所需
- Linux 下服务器与客户端之间的文件传
- windows、linux下sqlite远程管理工具及服
- Oracle12cR2双节点RAC在Linux7环境下的部署
- sqlite3Linux版本
- Oracle Linux 6.5 服务器 安装 Oracle 11.2.
- MySQL-shared-compat-5.6.36-1.linux_glibc2.5.x8
- linux下qt做的一个订餐管理系统sqlite的
- Ecology8安装部署手册_Linux_Oracle_2018V1
- linux下安装oracle 12c client
- rlwrap-0.42.tar.gz-Linux下的SqlPlus必备
- Linux System Programming 2nd edition.pdf
- Linux下的MySQL依赖包(所有perl).rar
- Oracle 11g for linux安装指南
- linux电子词典项目(sqlite3数据库)
- 一步一步在Linux上部署Oracle 11.2.0.3 R
- mysql-3.23.58-pc-linux-i686.tar.gz
-
linux的rpm包aaa_ba
se - Oracle 11g RAC+DG 非常牛逼的部署手册
- oracle bbed包
- oracle11g 安装依赖包redhat 6.9 64位
- Linux+Oracle 11g+RAC+12cc+adg中国史上最详细
- SUSE Linux 11上安装Oracle 11g的详细步骤
- Linux--Oracle-11g-R2-RAC-安装配置详细过程
- 基于Socket技术的多人聊天室系统源码
评论
共有 条评论