ACE_SOCK_Stream的recv_n需要注意的地方
这个函数在收到eof的时候是会返回0的,因此不要用返回值来统计实际收到的字节数,应该用它的第4个参数bytes_transferred。比如client发了4个字节,server用recv_n(buf, 4),返回值为4,但如果用recv_n(buf, 5),返回0。
如果想知道实际收了多少,应该:
size_t bytes_transferred;
peer.recv_n(buf, 5, 0, &bytes_transferred);
回复 #1 wishel 的帖子
很好,真是谢谢版主,解决了我刚开始学习ACE的许多疑惑。
页:
[1]