文章目录

##前言
\qquad这学期正好有门TCP/IP 编程,乘机写了个dos下的聊天室,去年这个时候用Java写了个带GUI的多人聊天室,不过整体来看这次在对网络编程有了一定的理论基础后,这次用c++写的时候,那叫一个轻车熟路。写了多个版本的demo,在文章的最后会把demo更新描述。(对于Java版或者Demo有需要的可以在评论区回复)。
##聊天室优点与可拓展功能
###优点:
1.实现了基本的聊天功能,包括群聊与私聊
2.用户注册时使用文件做过渡,用户退出登陆时仍可保留用户信息
3.封装消息传递时格式,包括消息的生成与解析
4.友好的操作逻辑
5.多方位错误提醒

###可拓展功能
1.本次由于要求,将客户端一分为二包括接收端和发送端,虽然减少了开多线程带来的工作量,但是使整个聊天室的一体性大打折扣,于是就可以在客户端开多线程去优化。
2.这聊天室限于其类型,只是通过文档来保存用户列表,但是可以使用数据库来增加用户量增大带来的问题
3.聊天室并不支持文件发送,可以考虑后期添加
4.聊天室未对多群组,好友关系留下拓展接口,这是考虑到文件操作的局限性,如果有需求,可以做两方面考量,第一是使用数据库建立好友关系,群组关系,用户表;第二修改消息格式,拓展对添加的群组选择拓展。
##实测
###登陆界面

###注册

###聊天

###群聊

###私聊

###退出(左边为sender退出,右边为receiver退出)

##编译环境
IDE : CodeBlocks 16.01
语言:C++
运行须知:需要添加链接库,才可以运行

##后记
\qquad现附上代码,有空在补上内部实现的亮点与不足,有什么问题,可以随时私信。有空可以follow下博主的github(丑不要碧莲,有打广告).最后附上下载链接,喜欢点赞就行。(csdn必须要c币,github免费下载)

##下载入口
csdn下载入口

github下载入口

基于UDP的dos多人聊天室相关推荐

  1. 基于UDP的简易多人聊天室

    1.服务器 1.服务器采用了线程进行编写,这样可以共享链表,比较简单. 2.实现思路:由客户端发送消息(内容包含:客户端自定义的名字.客户端发送消息的类别.客户端发送的消息内容),服务器接收到消息后根 ...

  2. python实现简易聊天需要登录博客园zip下载_Python基于Socket实现简易多人聊天室的示例代码...

    前言 套接字(Sockets)是双向通信信道的端点. 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可以是任何一台有连接互联网的机器. 套接字可以通过多种不同的 ...

  3. 网络编程套接字(上篇)UDP实现简易多人聊天室

    目录 背景知识 主机间通信本质 socket 端口号特点: 为什么不用进程pid? 网络字节序 socket编程接口API sockaddr结构 ​编辑 简单UDP网络程序 了解UDP协议 简易多人聊 ...

  4. java 网络编程 聊天_Java——网络编程(实现基于命令行的多人聊天室)

    目录: 1.ISO和TCP/IP分层模型 2.IP协议 3.TCP/UDP协议 4.基于TCP的网络编程 5.基于UDP的网络编程 6.基于TCP的多线程的聊天室的实现 1.ISO和TCP/IP分层模 ...

  5. Java——网络编程(实现基于命令行的多人聊天室)

    2019独角兽企业重金招聘Python工程师标准>>> 目录: 1.ISO和TCP/IP分层模型 2.IP协议 3.TCP/UDP协议 4.基于TCP的网络编程 5.基于UDP的网络 ...

  6. C 基于UDP实现一个简易的聊天室

    引言 本文是围绕Linux udp api 构建一个简易的多人聊天室.重点看思路,帮助我们加深 对udp开发中一些api了解.相对而言udp socket开发相比tcp socket开发注意的细节要少 ...

  7. 基于Netty框架的多人聊天室

    因为产品升级,需要将原生的Java Socket通信改为Netty框架所以学习了Netty,这是一个多人聊天室,就算是第一个小作品吧. 使用的时候先开启服务端,之后开启任意多个客户端,即可实现多人聊天 ...

  8. 基于socket实现的多人聊天室项目(python)

    最近做了一个多人聊天室项目,主要目的是练习和巩固socket编程. 在开始之前,可以先了解一下socket的TCP三次握手和四次挥手. 参考:https://blog.csdn.net/luoyoub ...

  9. python多人聊天室_Python基于Socket实现简易多人聊天室

    前言 套接字(Sockets)是双向通信信道的端点. 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可以是任何一台有连接互联网的机器. 套接字可以通过多种不同的 ...

最新文章

  1. 商汤三体梦幻联动,能遭遇水滴的那种元宇宙要来了!我在现场听见了次元壁破碎的声音...
  2. Linux系统安装python3和创建python3虚拟环境
  3. 条件测试 linux,Linux的条件测试
  4. python代码翻译器-python写的翻译代码
  5. 《Android Framework-跨进程通信高级实战课》笔记
  6. .NET多线程编程(14)——用C#实现蜘蛛/爬虫程序的多线程控制
  7. 重新审视虚拟桌面存储
  8. 漫谈工业软件(4)-关于开源工业控制软件
  9. 解决OverflowError: int too large to convert to float的办法
  10. Java入门学习笔记——郝斌(三)线程
  11. 电脑的热点手机连接不上怎么办
  12. 电磁场与电磁波 试题含答案
  13. Traceback (most recent call last):IndexError: list assignment index out of range
  14. 猜数字游戏 由计算机,猜数字游戏实验报告
  15. 福禄克光纤测试:多模光纤 VS 单模光纤
  16. 三子棋 C语言【详解】
  17. Python max函数
  18. ROS 机器人模型节点的运动控制原理
  19. CVPR2020论文分方向整理之检测篇_3D目标检测(代码/论文解读/136篇打包下载)
  20. YUV图像格式转换方法实践

热门文章

  1. openwrt上opkg更新报错opkg_download: Failed to download .............
  2. 毕夏钟伟强沧桑战全场泪奔
  3. 假发外贸有必要建自己的网店吗?
  4. 仿人机器人学习笔记(一)坐标变换
  5. MapGIS67编辑线右键结束时,想继续接着编辑线时怎么操作?
  6. 食亨CEO王泰舟对话新华社:餐饮数字化经营时代已经到来
  7. android mic 测试软件,麦克风测试校正系统(IK Multimedia ARC System 3)
  8. 精益生产五大原则是什么?五大精益生产原则的分析与应用
  9. 树莓派吃派(android Pie)指南
  10. -march= 所带参数(armv4)不正确(2018-07-01)