基于UDP的dos多人聊天室
文章目录
##前言
\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多人聊天室相关推荐
- 基于UDP的简易多人聊天室
1.服务器 1.服务器采用了线程进行编写,这样可以共享链表,比较简单. 2.实现思路:由客户端发送消息(内容包含:客户端自定义的名字.客户端发送消息的类别.客户端发送的消息内容),服务器接收到消息后根 ...
- python实现简易聊天需要登录博客园zip下载_Python基于Socket实现简易多人聊天室的示例代码...
前言 套接字(Sockets)是双向通信信道的端点. 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可以是任何一台有连接互联网的机器. 套接字可以通过多种不同的 ...
- 网络编程套接字(上篇)UDP实现简易多人聊天室
目录 背景知识 主机间通信本质 socket 端口号特点: 为什么不用进程pid? 网络字节序 socket编程接口API sockaddr结构 编辑 简单UDP网络程序 了解UDP协议 简易多人聊 ...
- java 网络编程 聊天_Java——网络编程(实现基于命令行的多人聊天室)
目录: 1.ISO和TCP/IP分层模型 2.IP协议 3.TCP/UDP协议 4.基于TCP的网络编程 5.基于UDP的网络编程 6.基于TCP的多线程的聊天室的实现 1.ISO和TCP/IP分层模 ...
- Java——网络编程(实现基于命令行的多人聊天室)
2019独角兽企业重金招聘Python工程师标准>>> 目录: 1.ISO和TCP/IP分层模型 2.IP协议 3.TCP/UDP协议 4.基于TCP的网络编程 5.基于UDP的网络 ...
- C 基于UDP实现一个简易的聊天室
引言 本文是围绕Linux udp api 构建一个简易的多人聊天室.重点看思路,帮助我们加深 对udp开发中一些api了解.相对而言udp socket开发相比tcp socket开发注意的细节要少 ...
- 基于Netty框架的多人聊天室
因为产品升级,需要将原生的Java Socket通信改为Netty框架所以学习了Netty,这是一个多人聊天室,就算是第一个小作品吧. 使用的时候先开启服务端,之后开启任意多个客户端,即可实现多人聊天 ...
- 基于socket实现的多人聊天室项目(python)
最近做了一个多人聊天室项目,主要目的是练习和巩固socket编程. 在开始之前,可以先了解一下socket的TCP三次握手和四次挥手. 参考:https://blog.csdn.net/luoyoub ...
- python多人聊天室_Python基于Socket实现简易多人聊天室
前言 套接字(Sockets)是双向通信信道的端点. 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可以是任何一台有连接互联网的机器. 套接字可以通过多种不同的 ...
最新文章
- 记录一个比较完整的python项目分析架构
- 使用脑电图慢皮层电位重建3D空间中的手,肘和肩的实际和想象的轨迹
- Java:网络编程之UDP的使用
- 你好~520|Python花式表白的几种姿势
- 什么 Leader 值得追随?
- 线性代数五之高斯消元——[SDOI2010]外星千足虫,[HNOI2013]游走,[HNOI2011]XOR和路径,[hdu 4035]Maze
- python色标_Python: 气象绘图实例之台风
- inline函数_逼近函数(2)
- linux发行版_2020年最漂亮的7个Linux发行版
- matplotlib库使用
- java eclipse 下载_JAVA下载安装及eclipse下载安装
- 匈牙利算法和KM算法的理解
- 2018-2019-1 20165211 20165230 20165208 实验二 固件程序设计-1
- python打开ie浏览器_python-IE浏览器调用
- aes ccm模式 java_AES_GCM和AES_CCM的选择
- GPRS PDP APN
- 计算机专业考研410分,从一个中专生到考研410分的历程
- 新方法使虚拟现实中的无限行走变为可能
- iOS APP调取短信 发送消息给其他人
- python爬虫 豆瓣影评的爬取cookies实现自动登录账号