首页 > IT职业 > IT生活 > 用消息队列和socket实现聊天系统
前言:最近在学进程间通信,所以做了一个小项目练习一下。主要用消息队列和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/36/viewspace-2813710/ ,如需转载,请注明出处,否则将追究法律责任。