当前位置: 首页 > 知识库问答 >
问题:

在数据包丢失的情况下,是否可以强制TCP套接字发送0字节?python

卢俭
2023-03-14

我正在编写一个简单的文件客户端-服务器通信来使用TCP传输文件。我想使用python套接字编程来实现它的代码。我遵循这个例子。我想知道是否有可能控制数据包丢失和重传。例如,当数据包丢失时,我可以发送零字节大小的丢失,而不是重传实际丢失的段吗?

共有1个答案

柴衡
2023-03-14

不,发送0字节表示套接字已正确关闭,这是TCP协议的一部分。您要做的是更改已经处理数据包丢失的TCP协议。您当然可以发送指示数据包丢失的数据,但它将在之前丢失的数据的重试尝试完成后接收,不会对您有所帮助。听起来,使用UDP并围绕数据包丢失编写自己的逻辑会更适合您正在尝试的操作,但随后您还必须处理无序数据。

 类似资料:
  • 更奇怪的是,当我在对等程序之外使用它时,这段代码仍然有效。任何帮助都将非常感谢,我已经为这件事挣扎了两天了。

  • 我正在为一个现有的客户端创建一个服务器。该客户端使用套接字和DataInPutStream从服务器读取输入。它使用以下方法检查服务器结束消息: 在服务器上,我使用serversocket和DataOutputStream向客户端发送消息: 我如何发送一个0字节,以便客户端知道它是消息的结尾?

  • 我在JAVA中通过TCP接收字节数据包时遇到了一些问题。我的TCPServer类发送207字节的数据包。当我发送一个数据包时,控制台中的程序显示“读取207字节的数据包”然后停下来。在下一个数据包继续执行时,显示“多重测量”和“读取1868767867字节数据包”。之后,接收将永远停止。我不知道它为什么接收1868767867字节。我在wireshark中检查它,服务器总是发送207字节。 这是我

  • 我计划做一个项目,其中包括一个作为visual studio控制台应用程序的服务器和一个作为qt应用程序的客户端应用程序,我想知道是否有可能在这两个应用程序之间发送和接收数据,如果是的话,我还想知道它是否也能在android上工作,在windows作为windows服务器端和android作为客户端之间工作 注意:服务器将使用winsock,客户端将使用qt套接字,两个应用程序将使用tcp套接字

  • 我正在编写一个简单的TCP客户端和服务器Perl脚本。到现在为止,我使用wireshark验证了三路TCP握手,并且建立了连接。但当我尝试发送或恢复数据时,什么也不会发生。 1)客户端和服务器之间的主要区别只是服务器增加了一个LISTEN参数,使它能够侦听传入的连接? 2)在recv和显示数据之间是否缺少任何步骤? 3)当程序第一次执行while循环时,难道不应该至少发送硬编码字符串“$respo