您当前的位置: 首页 >  linux

DS小龙哥

暂无认证

  • 2浏览

    0关注

    679博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Linux下基于TCP协议的群聊系统设计(多线程+select)

DS小龙哥 发布时间:2021-11-17 21:00:00 ,浏览量:2

一、功能介绍

这是基于Linux下命令行设计的一个简单的群聊天程序。

这个例子可以学习、巩固Linux下网络编程相关知识点

  1. 练习Linux下socket、TCP编程
  2. 练习Linux下pthread、线程编程
  3. 练习Linux下多路IO检测、select函数使用
  4. 练习C语言链表使用
  5. 练习线程间同步与互斥、互斥锁mutex的使用

群聊程序分为客户端和服务器两个程序

  1. 服务器端: 运行整个例子要先运行服务器, 服务器主要用于接收客户端的消息,再转发给其他在线的客户端。服务器里采用多线程的形式,每连接上一个客户端就创建一个子线程单独处理;用了一个全局链表存放已经连接上来的客户端,当一个客户端发来消息后,就逐个转发给其他客户端,客户端断开连接下线后,就删除对应的节点;链表添加节点、删除节点采用互斥锁保护。

  2. 客户端: 客户端相当于一个用户,客户端代码可以同时运行多个,连接到服务器之后,互相发送消息进行聊天。发送的消息采用一个结构体封装,里面包含了 用户名、状态、消息本身。

功能总结: 支持好友上线提醒、好友下线提醒、当前在线总人数提示、聊天消息文本转发。

好友上线通知、正常聊天效果: image.png

好友下线提示:

关注
打赏
1664009229
查看更多评论
立即登录/注册

微信扫码登录

0.0389s