【问题标题】:Where is my understanding of Socket.Send wrong? [duplicate]我对 Socket.Send 的理解哪里错了? [复制]
【发布时间】:2020-10-30 18:32:52
【问题描述】:

我创建了this proof of concept code 来锻炼我对Socket.Send 行为方式的理解。

我指向的主机实际上是在澳大利亚中部天蓝色数据中心(我在巴西,所以它的半个世界距离),但平均 TICK 在 40 到 70 之间。我不是在说毫秒,TICKS!

谁能给我解释一下这是怎么回事?

我原本希望平均毫秒数接近 200 或什么的……但现在它甚至没有接近 1 毫秒!

【问题讨论】:

  • 你真的相信环游世界不到1毫秒吗?!?如果我的测量有误,请指出!代码在那里!如果您不相信我,请复制,粘贴和执行
  • Socket send 数据一发送就返回,返回的时候并不代表对方真的收到了数据,所以没有往返。

标签: c# sockets tcp


【解决方案1】:

来自the docs

[...] Send 方法的成功完成意味着底层系统有空间来缓冲您的数据以进行网络发送。

因此,一旦Send 方法返回,无法保证数据确实到达了目的地。

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 2022-12-19
    相关资源
    最近更新 更多