C++ Boost Aiso TCP 网络聊天(服务端客户端一体化)
代码功能说明:
-
程序模式:
- 主动连接模式:当用户指定对端 IP 和端口时,尝试连接到对端
- 被动监听模式:当用户未指定对端 IP 时,等待其他节点连接
-
线程模型:
- 主线程:处理用户输入和消息发送
- 接收线程:后台接收并显示对端消息
-
关键组件:
std::atomic<bool> connected
:原子标志,确保多线程安全访问连接状态receive_messages()
: 接收消息并显示send_messages()
: 处理用户输入并发送run_peer()
:确定是服务端还是客户端
-
异常处理:
- 所有 Boost.Asio 操作都包含错误码检查
- 异常捕获处理网络错误和连接中断
- 连接关闭时正确更新状态标志
-
用户交互