代碼功能說明:
-
程序模式:
- 主動連接模式:當用戶指定對端 IP 和端口時,嘗試連接到對端
- 被動監聽模式:當用戶未指定對端 IP 時,等待其他節點連接
-
線程模型:
- 主線程:處理用戶輸入和消息發送
- 接收線程:后臺接收并顯示對端消息
-
關鍵組件:
std::atomic<bool> connected
:原子標志,確保多線程安全訪問連接狀態receive_messages()
: 接收消息并顯示send_messages()
: 處理用戶輸入并發送run_peer()
:確定是服務端還是客戶端
-
異常處理:
- 所有 Boost.Asio 操作都包含錯誤碼檢查
- 異常捕獲處理網絡錯誤和連接中斷
- 連接關閉時正確更新狀態標志
-
用戶交互