在socket c#中发送ACK

本文关键字:ACK socket | 更新日期: 2023-09-27 17:49:30

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

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

在socket c#中发送ACK

这可能是一个与串行端口一起使用时开始使用的协议。它们没有内置在TCP中的那种传输和错误检查保证。如果你要发送的"数据包"有CRC或校验和之类的东西,那么它就是这种协议的死铃声。

在TCP中不需要添加这种检查。当您简单地打开文件而不注意ack时,它可能会工作得很好。尽管您应该读取它们以防止缓冲区被填满。另一种方法是,在发送下一个字节块之前,等待某个从服务器发回。

如果您想检查ACK,那么查找值为6的单个字节,ACK的默认ASCII控制码。我不会实现"超时时重新发送"功能,除非协议实现了一个"块号",帮助它检测重复的块,这很可能在接收端失败,数据是双倍的。