• 首先是系统目录(用户.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聊天室的实现相关推荐

  1. 从0实现基于Linux socket聊天室-实现聊天室的公聊、私聊功能-4

    前面文章链接如下: <从0实现基于Linux socket聊天室-多线程服务器模型-1> <从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2> &l ...

  2. 基于linux网络聊天室的设计,参考基于linux网络聊天室的设计.doc

    参考基于linux网络聊天室的设计 长沙理工大学<高级操作系统>课程设计报告学 院 计算机与通信工程 专 业 计算机科学与技术 班 级 学 号 学生姓名 指导教师 课程成绩 完成日期 课程 ...

  3. Linux socket聊天室

    目录 一.运行效果 1.分别编译客户端和服务端代码 2.运行 3.使用效果 二.代码 chat.h 服务端代码 客户端代码 一.运行效果 1.分别编译客户端和服务端代码 gcc client.c -o ...

  4. linux点对点聊天室的实现与设计心得,基于Socket接口的Linux与Windows网络聊天室设计与实现...

    陈洁 孟晓景 摘要:为了实现Linux与Windows跨平台通信,及时共享信息,构建了一个适用于跨平台的网络聊天室通信程序.先搭建跨平台通信环境,然后使用Socket套接字网络编程接口实现通信.整个系 ...

  5. linux下多进程聊天室,从0实现基于Linux socket聊天室-多线程服务器模型-1

    前言 Socket在实际系统程序开发张中,应用非常广泛,也非常重要.实际应用中服务器经常需要支持多个客户端连接,实现高并发服务器模型显得尤为重要.高并发服务器从简单的循环服务器模型处理少量网络并发请求 ...

  6. 回调函数 线程_从0实现基于Linux socket聊天室-多线程服务器一个很隐晦的错误-2...

    根据 <0 基于socket和pthread实现多线程服务器模型>所述,server创建子线程的时候用的是以下代码: pconnsocke = (int *) malloc(sizeof( ...

  7. linux中用gtk编写的聊天室能运行的,CHAT_ROOM

    CHAT_ROOM 所属分类:Linux/Unix编程 开发工具:Unix_Linux 文件大小:191KB 下载次数:7 上传日期:2016-05-25 16:57:56 上 传 者:褚克珍 说明: ...

  8. Linux下基于socket和多线程的聊天室小程序

    转载:http://blog.csdn.net/robot__man/article/details/52460733 要求:基于TCP编写,一个聊天室最多100人.  客户端:  1.用户需要登录, ...

  9. 利用多线程实现linux下C语言的聊天室程序:

    转载:http://www.360doc.com/content/16/0421/11/478627_552531090.shtml 利用多线程实现linux下C语言的聊天室程序: 客户端代码: th ...

  10. linux tcp 服务器 c,Linux网络编程篇之Tcp协议介绍, C/S通信及聊天室实现

    基于tcp协议的网络程序流程图如下: tcp协议网络程序流程图 服务器调用socket().bind().listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态 客户端调用so ...

最新文章

  1. linux下 zip解压 tar解压 gz解压 bz2等各种解压文件命令
  2. SpringBoot + Vue + nginx项目一起部署
  3. ecshop百度编辑器远程下载无后缀的图片,并且加水印
  4. Keras框架:resent50代码实现
  5. 达尔豪西大学 计算机科学,达尔豪西大学计算机科学硕士专业.pdf
  6. 网易第二季度营收205亿元 同比增长13%超预期
  7. java策略模式学习
  8. 中兴网信“智慧旅游”亮相2016国际孔子文化节
  9. 判断字符串是否是正整数
  10. H.264文件解析与码流分析
  11. HTML结构:自我简介网页
  12. 在matlab中字母的小写转换成大写字母,wps文字怎么将大写字母转换成小写字母
  13. 儿时的小游戏:象狮虎豹狼狗猫鼠
  14. gb 28181的20位编码简介
  15. A19T三极管,A19T的规格书
  16. PHPStorm中使用phpcs和php-cs-fixer
  17. Eric Berg:帮助你了解及根治痘痘痤疮的观点
  18. 瑞格科技IPO被终止:曾拟募资5.6亿 江振翔三兄弟为实控人
  19. Codeforces Round #694 (Div. 2) F. Strange Housing (贪心思维)
  20. 机器视觉(七):图像分割

热门文章

  1. 如何自学成为程序员?
  2. Tesseract调用日文识别模型
  3. 浙江5G+智能制造迅速推进连点成片。
  4. 增值税下调对财务软件的影响
  5. sql注入之时间注入
  6. 至少连接一个aura sync兼容设备_电磁兼容测试照片
  7. tp5 点击刷新验证码
  8. 中级计算机证书知识,计算机中级考哪些内容
  9. 矩阵求导法则,梯度求导方式
  10. 视频自动生成字幕VideoSrt