首页 > IT职业 > IT生活 > 消息队列、socket(UDP)实现简易聊天系统
前言:
最近在学进程间通信,所以做了一个小项目练习一下。主要用消息队列和socket(UDP)实现这个系统,并数据库存储数据,对C语言操作数据库不熟悉的可以参照我的这篇博客:https://www.cnblogs.com/liudw-0215/p/9593414.html,所有代码提交我的Github上,地址:https://github.com/ldw0215/Chat-System.git,可以自行下载,然后make一下就可以了。
要求实现用户注册、用户登录功能,密码需加密显示
要求实现聊天功能,双方能互发消息
数据要求数据库存储
主要流程图如下:
主要有客户端(用户)和服务端,客户端发送注册、登录请求,服务端回应请求,并且双方可以模拟聊天(互相发送消息),主要客户端请求界面见下图:

注册、登录使用消息队列进行通信的,聊天是通过socket(UDP)实现的!数据存在数据库中,需要一张数据表,建表数据语句如下:
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(64) NOT NULL DEFAULT '', `password` varchar(64) NOT NULL DEFAULT '', `check` varchar(64) NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8;
client.c创建不同的消息队列的键,根据不同的消息类型的进行发送,并等待服务端响应,client.c代码如下:
#include "my.h"Msg m;
Msg_stoc msg_stoc;static int msgid_ctos;static int msgid_stoc;void showmenu()
{
puts("-------CHAT----------");
puts("| 1:发送 2:接收 |");
puts("| 3:退出 |");
puts("--------------------");
}void show()
{
puts("-------CHAT----------");
puts("| 1:注册 2:登录 |");
puts("| 0:退出 |");
puts("--------------------");
}void send1()
{
printf("%s","send"); char buf[16] = {'
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1834/viewspace-2813709/ ,如需转载,请注明出处,否则将追究法律责任。