Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

v1_Simple 版本说明

这是异步服务器的初始版本(Simple Version)。

特点

  1. 半双工通信 (Half-Duplex):

    • 逻辑流程是:Read -> HandleRead -> Write -> HandleWrite -> Read
    • 在发送数据期间,服务器停止接收新数据。
    • 这种模式类似于"对讲机",一方说完另一方才能说。
  2. 简单的缓冲区管理:

    • 使用 MsgNode 或简单的 char 数组进行数据收发。
    • 没有发送队列,如果连续调用 Send,可能会导致数据交错或崩溃(因为 async_write 不能在同一个 socket 上并发调用)。

存在的问题

  • 性能瓶颈: 发送耗时会阻塞接收。
  • 逻辑缺陷: 如果客户端连续发送多条消息,服务器可能因为正在处理上一条的发送而无法及时读取,导致 TCP 缓冲区堆积。
  • 线程安全: 缺乏对并发发送的保护。

改进方向 (见 v2_FullDuplex)

  • 实现全双工通信(读写分离)。
  • 引入发送队列 (std::queue) 保证发送顺序。
  • 使用 strandmutex 保证线程安全。