有关boost::asio::read()动态内存读取的问题
函数原型
char pic_info[PACK_SIZE];
boost::asio::read(socket,buffer(pic_info),transfer_exactly(X),ec)
当我使用char *pic_info = new char[PACK_SIZE + 1]
的时候,会发生下列错误
这是一个socket的简单服务器,用于接受图片,
由于图片的大小不确定,1k到5m都会有,使用char pic_info[PACK_SIZE]会严重浪费内存,所以我想用一个动态字符串接受传过来的图片
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以使用streambuf(二进制流)的方式直接动态分配内存
同时使用read_until函数读取结束符
最后可以再转换成string类型进行使用