gpt4 book ai didi

c# - 在套接字 C# 中发送 ACK

转载 作者:可可西里 更新时间:2023-11-01 02:31:44 25 4
gpt4 key购买 nike

我需要通过 Socket 将文件发送到服务器。服务器将为我发送的每条消息发送 ACK。如果我在 30 秒内没有收到 ACK,我将不得不再次发送请求。

我的问题是,如何发送/接收ACK?是否有任何内部 ACK 或服务器是否应该以字节为单位发送 ACK?据我了解,这里的服务器不会发送 ACK 作为消息。所以我想知道如何处理这个 ACK​​ 部分。

提前致谢。

最佳答案

这可能是与串行端口一起使用时开始使用的协议(protocol)。它没有内置于 TCP 中的那种交付和错误检查保证。如果您必须发送的“数据包”具有 CRC 或校验和之类的内容,那么对于此类协议(protocol)来说,这是一个致命的问题。

TCP 不需要添加这种检查。当您简单地爆破文件而不注意 ACK 时,它可能会工作得很好。尽管您应该阅读它们以防止缓冲区填满。第二种方法是在发送下一个字节 block 之前简单地等待从该服务器发回的东西

如果您无论如何都想检查 ACK,请查找值为 6 的单个字节,这是 ACK 的默认 ASCII 控制代码。我不会实现“超时时重新发送”功能,除非协议(protocol)实现了一个“ block 号”来帮助它检测重复 block ,这很可能在接收端以双倍数据失败。只需发送下一个 block 。

关于c# - 在套接字 C# 中发送 ACK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5567693/

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