我不理解发送内存缓冲区的WSASendTo
,WSASendMsg
和TransmitPackets
之间的主要区别:
它们都允许缓冲区收集
所有这些都允许重叠(异步)操作
WSASendTo
和TransmitPackets
都允许使用流套接字(WSASendMsg
似乎不是)
显然有一些小的功能差异(例如,只有WSASendMsg
可以发送控制信息),但我不是在谈论那些,因为没有选择在那里。
在大多数情况下,它们看起来都是一样的,我想其中一个用于其余部分。
我想知道的是,如果我只是将数据从内存缓冲区发送到流或数据报套接字,我该如何选择使用哪一个?
他们中的任何一个更快/更好吗?或者,他们在任何方面都有所不同,例如(但不限于):
数据包效率?
缓冲区有多大?
他们的队列大小有多大?
队列已满时阻止与错误行为?
缓存行为? (请注意,我不谈论发送文件,只是内存缓冲区)
还是其他什么?