Windows Socket API:WSASendTo与WSASendMsg vs. TransmitPackets?

时间:2016-09-05 20:01:49

标签: c sockets winapi winsock winsock2

我不理解发送内存缓冲区的WSASendToWSASendMsgTransmitPackets之间的主要区别:

  • 它们都允许缓冲区收集

  • 所有这些都允许重叠(异步)操作

  • WSASendToTransmitPackets都允许使用流套接字(WSASendMsg似乎不是)

显然有一些小的功能差异(例如,只有WSASendMsg可以发送控制信息),但我不是在谈论那些,因为没有选择在那里。
在大多数情况下,它们看起来都是一样的,我想其中一个用于其余部分。

我想知道的是,如果我只是将数据从内存缓冲区发送到流或数据报套接字,我该如何选择使用哪一个?

他们中的任何一个更快/更好吗?或者,他们在任何方面都有所不同,例如(但不限于):

  • 数据包效率?

  • 缓冲区有多大?

  • 他们的队列大小有多大?

  • 队列已满时阻止与错误行为?

  • 缓存行为? (请注意,我谈论发送文件,只是内存缓冲区)

  • 还是其他什么?

0 个答案:

没有答案