isp*_*iro 6 .net c# sockets tcp tcpclient
TcpClient.NoDelay文档状态:
获取或设置一个值,该值在发送或接收缓冲区未满时禁用延迟。
但是,目前尚不清楚这是否仅适用于设置为之后写入的true数据,或者也适用于已写入且正在等待的数据。即当缓冲区中有数据然后设置为 时,缓冲区中的数据NoDelay是否会立即发送?true
当缓冲区中有数据,然后将NoDelay设置为true时,缓冲区中的数据会立即发送吗?
不。
接下来将Send使用有效数据对其进行评估。
您可以NoDelay = true通过后面的Send几个字节进行验证。
或者NoDelay = true在不调用Sendafter 的情况下进行设置,您应该不会看到任何变化。
我使用Wireshark进行验证,但可以使用您喜欢的任何数据包检查工具。
TcpClient只是一层薄薄的包装纸Socket,所以你可以用Socket.NoDelay同样的方法。
套接字选项是通过调用此方法setsockopt设置的,该方法是本机代码:
errorCode = UnsafeNclNativeMethods.OSSOCK.setsockopt(
m_Handle,
optionLevel,
optionName,
ref optionValue,
sizeof(int));
Run Code Online (Sandbox Code Playgroud)
在这种情况下设置的实际选项是TCP_NODELAY。
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |