今天终于把尘封了好久的《C++网络编程》给搬出来,打算认真研究一下。
兴冲冲地把第四章 ACE_Message_Block 的示例输入进去测试,竟然发现有BUG,最后的数据会丢失一段。
仔细研究文档才明白,read_n 返回 0 或者 -1的时候,也可能有数据被读入的,这个时候要依赖 read_n 的参数4来检查。
下面是修改的代码,终于正常了。
今天终于把尘封了好久的《C++网络编程》给搬出来,打算认真研究一下。
兴冲冲地把第四章 ACE_Message_Block 的示例输入进去测试,竟然发现有BUG,最后的数据会丢失一段。
仔细研究文档才明白,read_n 返回 0 或者 -1的时候,也可能有数据被读入的,这个时候要依赖 read_n 的参数4来检查。
下面是修改的代码,终于正常了。