[英]Winsock overlapped IO and message parsing
我必须实现一个(客户端)套接字,该套接字需要在Windows 7服务器上运行的高吞吐量(> 800Mbps)和低延迟。 重叠的IO似乎是追求高性能的方法。
阅读有关该主题的一些文档,据我所知,重叠的I / O的优点是您将一些带有缓冲区的结构传递给OS,并在它们被填充时得到通知。
不,我不知道将这种方法与基于数据包的协议(长度分隔的数据包,标头包含数据块的大小)相结合的常用方法是什么,当然我可以读取任意数据块并将所需数量的字节复制到消息结构中。 这意味着要执行其他复制操作。
第二种选择可能是将消息结构作为标头大小的缓冲区传递,将其返回后,再次传递相同的结构以读取请求的数据字节数。 在这种情况下,读取的第一个块很小,但是数据被保存到消息结构中,并且在读取数据块的过程中,可以初始化下一个标头块的读取。
任何经验或想法如何最有效地处理定界数据包?
谢谢,
如果您知道数据包的大小,请查看分散/聚集I / O。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.