gpt4 book ai didi

c# - 为什么在调用 Socket.BeginSend 后我的发送回调执行得如此之快?

转载 作者:可可西里 更新时间:2023-11-01 02:43:46 24 4
gpt4 key购买 nike

当我向远程 机器发送大量数据时,发送回调几乎立即执行。

[05:10:35:981] ChildSocket.Send(): Sending 1048508 bytes.
[05:10:35:988] ChildSocket.SendCallback(): Sent 1048508 bytes.

我的网速不可能在 7 毫秒内成功发送近 1 兆字节。

由于这种行为,我的印象是调用 BeginSend 只是将发送缓冲区写入操作系统,操作系统会在适当的时候发送它。

这种怀疑是否正确?为什么发送回调执行得这么快?

最佳答案

是的,操作系统会缓冲数据(尽管 1MB 似乎很多)。 Send 永远不会向您保证数据已被远程端接收到。即使没有操作系统缓冲也是如此。要么让另一方确认数据,要么关闭套接字并等待连接完成。

关于c# - 为什么在调用 Socket.BeginSend 后我的发送回调执行得如此之快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18537362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com