区块链技术博客
www.b2bchain.cn

Linux C聊天室的实现的讲解

这篇文章主要介绍了Linux C聊天室的实现的讲解,通过具体代码讲解7075并且分析了Linux C聊天室的实现的讲解的详细步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了Linux C聊天室的实现的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7075.html。具体如下:

  • 首先是系统目录(用户.db为系统为每个登录用户创建的数据库文件,chat.db为聊天记录,client server为用户端和服务器端)

Linux C聊天室的实现

先看功能,再看主要代码分析

  • 登录界面,主要功能是注册,登录,退出

Linux C聊天室的实现

 

1、注册功能(考虑实用,这里没有密文处理):

Linux C聊天室的实现

2 、登录功能(密文处理,密码可删除):

Linux C聊天室的实现

 3、退出功能:

Linux C聊天室的实现

 密码密文处理,参考前文

Linux C 实现密码的密文输入,*输出,可删除

———————————————————————————————————————————————————

  • 用户主界面:

  • 个性签名功能:

Linux C聊天室的实现

 

  • 表情功能(很简单好玩的功能):

Linux C聊天室的实现

 

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 表示表情猪头

Linux C聊天室的实现

 

功能选项

Linux C聊天室的实现

私聊、群聊功能(这里设置一个数组,保存用户在线状态,默认0,每次用户上线为1,群发即对每个状态为1的用户发消息):

1、群聊

Linux C聊天室的实现

2、私聊:

Linux C聊天室的实现

3、退出登录

Linux C聊天室的实现

4、查看聊天记录(读sqlite3数据库数据) 

Linux C聊天室的实现
 

 

  •  

5、查看在线人数:

Linux C聊天室的实现

6、修改个性签名

Linux C聊天室的实现

7、修改密码(这里为了实用密码也没有密文处理)

Linux C聊天室的实现

这里在修改密码成功后并没有立刻退出(感兴趣的可以在我代码上在密码修改成功后加上正常退出功能) 

为了整体编译,写了个Makefile

 all:client server client:client.o error.o sqlite3.o 	gcc client.o error.o sqlite3.o -o client -lsqlite3 -lpthread server:sqlite3.o server.o error.o 	gcc sqlite3.o server.o error.o -o server -lsqlite3 -lpthread  sqlite3.o:sqlite3.c 	gcc -c sqlite3.c server.o:server.c 	gcc -c server.c client.o:client.c 	gcc -c client.c error.o:error.c 	gcc -c error.c	   .PHONY:clean clean: 	rm -f *.o 	rm -f server 	rm -f client 	rm -f *.db    clear: 	rm *.db

 完整代码整理出来之后将会免费共享出来。

本文地址https://www.b2bchain.cn/7075.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Linux C聊天室的实现的讲解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们