您能否在 System.Net.Sockets 中设置 recive 调用以作为设置了 MSG_PUSH_IMMEDIATE 标志的 winsocket2 WSARecv

Can you setup recive call in System.Net.Sockets to behave as winsocket2 WSARecv with MSG_PUSH_IMMEDIATE flag set

我正在连接到未在其 TCP 数据包上设置 PSH 标志的服务器。由于延迟很重要,我需要在接收时忽略 PSH 标志并立即转发缓冲区中的任何内容。

这在 winsock2 api 中可以通过 WSARecv 函数和 MSG_PUSH_IMMEDIATE 标志实现。 .net 套接字是否可以实现相同的功能?

看起来 Rowan Smith 这个想法可行。我将 (SocketFlags)0x20 添加到 BeginReceive() 函数,它在后台传播到 WSARecv() 函数,因此延迟被消除了。

我检查了 .net framework 4.5.1 和 4.8,这两个实现都只是将 SocketFlags 传递给 WSARecv(),而不使用或修改它们。

谢谢!