最近试了下用 boost 写代理。
主要流程如下:
A, B 2 个 socket(A 负责浏览器数据, B 负责远端数据, 同一个 io_service), 相互转发数据(async_read_some 后调用 async_write), A, B 任意一个关闭都会导致 2 个 socket 一起关闭(调用 socket->close())。
但测试过程中发现有时候浏览器从 A 获取数据的时候会出现异常(数据未收完就关闭了), 所以想问下, 这里的async_write 是不是无法保证在被主动关闭的时候将缓冲区的数据发完后才关闭?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.