我已将基于 UDP 的协议实现从使用 Socket.BeginXXX 方法移植到 Socket.XXXAsync 方法,因为它们采用具有 Buffer、Offset 和 Count 属性的SocketAsyncEventArgs类,因此可以对单个大缓冲区进行分段并用于每个操作。
不幸的是,我刚刚发现了设置:
mySocketAsyncEventArgs.SendPacketsSendSize
使用以下方式发送数据报时不使用:
mySocket.SendToAsync(mySocketAsyncEventArgs);
而是发送 SocketAsyncEventArgs.Buffer 中 Offset for Count 个字节的整个段!而且我不能使用 Socket.SendPacketsElements 因为那只适用于连接的套接字!
通常我只会发送几个字节,但有时会发送一千个字节。如果这些重载的全部目的是提高效率 - 它们无济于事!
请告诉我有办法指定每个操作在 SocketAsyncEventArgs.Buffer 中发送的字节数。