为什么用UDP?
UDP是一个无连接的,不可靠的协议。
发送端的UDP协议层只把应用层传来的数据封装成端给IP协议层就完成任务了。
如果因为网络故障无法发送到对方,UDP协议层也不会给应用层返回任何错误信息。
那么,为什么用UDP协议?
很明显简单,快捷。
一般UDP协议的应用程序实现都比较简单,只是发送一些对可靠性要求不高的消息。
数据的传输方向
软件大体架构
主要接口
client:
server:
window:
data_pool:
Base_json.h&&data.h
PS:因为数据发来之后还是不知道数据是谁发的。所以这里在数据前添加了用户的基本信息。
结果展示
项目中遇到的问题
- 动态库的引入
- 当一个用户退出客户端的时候,服务器应该刷新一次用户列表窗口,服务器端应该对信号处理。(此时cmd为被置成quit)
- 窗口的绘制,客户端退出窗口的时候,应该endwin。再exit。如果直接exit会出现界面仍然存在的问题。
- 序列化与反序列化的操作。Cjson库的问题。不会用。
项目仍然存在的问题
很直接的问题:
udp不可靠,怎么保证数据的可靠性。
会不会出现数据粘包问题。