Linux C聊天室的实现
首先是系统目录(用户.db为系统为每个登录用户创建的数据库文件,chat.db为聊天记录,client server为用户端和服务器端)
先看功能,再看主要代码分析
登录界面,主要功能是注册,登录,退出
1、注册功能(考虑实用,这里没有密文处理):
2 、登录功能(密文处理,密码可删除):
3、退出功能:
密码密文处理,参考前文
Linux C 实现密码的密文输入,*输出,可删除
---------------------------------------------------------------------------------------------------------------------------------------------------------
用户主界面:
个性签名功能:
表情功能(很简单好玩的功能):
void expression(char name[],char msg[])
{if(strcmp(msg,"/xl") == 0){sprintf(msg,"表情:%s 做了个笑脸 ☺:-D",name);}if(strcmp(msg,"/js") == 0){sprintf(msg,"表情:%s 很沮丧 ☹ :-(",name);}if(strcmp(msg,"/jy") == 0){sprintf(msg,"表情:%s 很惊讶 :-O",name);}if(strcmp(msg,"/hh") == 0){sprintf(msg,"表情:哈哈 ^_^");}if(strcmp(msg,"/kkl") == 0){sprintf(msg,"表情:%s 快哭了 T_T",name);}if(strcmp(msg,"/zk") == 0){sprintf(msg,"表情:%s 抓狂 >_<",name);}if(strcmp(msg,"/mmj") == 0){sprintf(msg,"表情:喵喵叫 (=^_^=)");}if(strcmp(msg,"/yd") == 0){sprintf(msg,"表情:晕 (×_×)");}if(strcmp(msg,"/zt") == 0){sprintf(msg,"表情:猪头 ^(oo)^");}if(strcmp(msg,"/dgx") == 0){sprintf(msg,"表情:大狗熊 ( ̄(工) ̄)");}if(strcmp(msg,"/bz") == 0){sprintf(msg,"表情:闭嘴吧你 :-x");}
}
表情格式为 /+表情缩写,如 /js 表示表情沮丧 /zt 表示表情猪头
功能选项
私聊、群聊功能(这里设置一个数组,保存用户在线状态,默认0,每次用户上线为1,群发即对每个状态为1的用户发消息):
1、群聊
2、私聊:
3、退出登录
4、查看聊天记录(读sqlite3数据库数据)
5、查看在线人数:
6、修改个性签名
7、修改密码(这里为了实用密码也没有密文处理)
这里在修改密码成功后并没有立刻退出(感兴趣的可以在我代码上在密码修改成功后加上正常退出功能)
为了整体编译,写了个Makefile
all:client server
client:client.o error.o sqlite3.ogcc client.o error.o sqlite3.o -o client -lsqlite3 -lpthread
server:sqlite3.o server.o error.ogcc sqlite3.o server.o error.o -o server -lsqlite3 -lpthreadsqlite3.o:sqlite3.cgcc -c sqlite3.c
server.o:server.cgcc -c server.c
client.o:client.cgcc -c client.c
error.o:error.cgcc -c error.c .PHONY:clean
clean:rm -f *.orm -f serverrm -f clientrm -f *.dbclear:rm *.db
完整代码:GitHub
Linux C聊天室的实现相关推荐
- 从0实现基于Linux socket聊天室-实现聊天室的公聊、私聊功能-4
前面文章链接如下: <从0实现基于Linux socket聊天室-多线程服务器模型-1> <从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2> &l ...
- 基于linux网络聊天室的设计,参考基于linux网络聊天室的设计.doc
参考基于linux网络聊天室的设计 长沙理工大学<高级操作系统>课程设计报告学 院 计算机与通信工程 专 业 计算机科学与技术 班 级 学 号 学生姓名 指导教师 课程成绩 完成日期 课程 ...
- Linux socket聊天室
目录 一.运行效果 1.分别编译客户端和服务端代码 2.运行 3.使用效果 二.代码 chat.h 服务端代码 客户端代码 一.运行效果 1.分别编译客户端和服务端代码 gcc client.c -o ...
- linux点对点聊天室的实现与设计心得,基于Socket接口的Linux与Windows网络聊天室设计与实现...
陈洁 孟晓景 摘要:为了实现Linux与Windows跨平台通信,及时共享信息,构建了一个适用于跨平台的网络聊天室通信程序.先搭建跨平台通信环境,然后使用Socket套接字网络编程接口实现通信.整个系 ...
- linux下多进程聊天室,从0实现基于Linux socket聊天室-多线程服务器模型-1
前言 Socket在实际系统程序开发张中,应用非常广泛,也非常重要.实际应用中服务器经常需要支持多个客户端连接,实现高并发服务器模型显得尤为重要.高并发服务器从简单的循环服务器模型处理少量网络并发请求 ...
- 回调函数 线程_从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2...
根据 <0 基于socket和pthread实现多线程服务器模型>所述,server创建子线程的时候用的是以下代码: pconnsocke = (int *) malloc(sizeof( ...
- linux中用gtk编写的聊天室能运行的,CHAT_ROOM
CHAT_ROOM 所属分类:Linux/Unix编程 开发工具:Unix_Linux 文件大小:191KB 下载次数:7 上传日期:2016-05-25 16:57:56 上 传 者:褚克珍 说明: ...
- Linux下基于socket和多线程的聊天室小程序
转载:http://blog.csdn.net/robot__man/article/details/52460733 要求:基于TCP编写,一个聊天室最多100人. 客户端: 1.用户需要登录, ...
- 利用多线程实现linux下C语言的聊天室程序:
转载:http://www.360doc.com/content/16/0421/11/478627_552531090.shtml 利用多线程实现linux下C语言的聊天室程序: 客户端代码: th ...
- linux tcp 服务器 c,Linux网络编程篇之Tcp协议介绍, C/S通信及聊天室实现
基于tcp协议的网络程序流程图如下: tcp协议网络程序流程图 服务器调用socket().bind().listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态 客户端调用so ...
最新文章
- linux下 zip解压 tar解压 gz解压 bz2等各种解压文件命令
- SpringBoot + Vue + nginx项目一起部署
- ecshop百度编辑器远程下载无后缀的图片,并且加水印
- Keras框架:resent50代码实现
- 达尔豪西大学 计算机科学,达尔豪西大学计算机科学硕士专业.pdf
- 网易第二季度营收205亿元 同比增长13%超预期
- java策略模式学习
- 中兴网信“智慧旅游”亮相2016国际孔子文化节
- 判断字符串是否是正整数
- H.264文件解析与码流分析
- HTML结构:自我简介网页
- 在matlab中字母的小写转换成大写字母,wps文字怎么将大写字母转换成小写字母
- 儿时的小游戏:象狮虎豹狼狗猫鼠
- gb 28181的20位编码简介
- A19T三极管,A19T的规格书
- PHPStorm中使用phpcs和php-cs-fixer
- Eric Berg:帮助你了解及根治痘痘痤疮的观点
- 瑞格科技IPO被终止:曾拟募资5.6亿 江振翔三兄弟为实控人
- Codeforces Round #694 (Div. 2) F. Strange Housing (贪心思维)
- 机器视觉(七):图像分割