Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有可能在数据包丢失的情况下强制TCP套接字发送0字节-python_Python_Python 2.7_Sockets_Networking - Fatal编程技术网

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

是否有可能在数据包丢失的情况下强制TCP套接字发送0字节-python,python,python-2.7,sockets,networking,Python,Python 2.7,Sockets,Networking,我正在编写一个简单的文件客户端-服务器通信,以使用TCP传输文件。我想用python套接字编程实现它的代码。我明白这一点。我想知道是否可能控制数据包丢失和重传。例如,我是否可以在丢弃数据包时发送零字节大小的丢失数据,而不是重新传输实际丢失的数据段?否,发送0字节表示套接字已正确关闭,这是TCP协议的一部分。您试图做的是改变已经处理数据包丢失的TCP协议。您当然可以发送指示数据包丢失的数据,但它将在以前丢失的数据的重试尝试完成后接收,对您没有帮助。听起来,使用UDP和编写自己关于数据包丢失的逻辑更

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

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

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

你能指出你在协议中提到的部分吗?至少对于一个,未设置有效负载和ACK标志的分组是ACK分组。我的理解是“零长度”TCP数据包仅仅意味着发送它的一方没有有效负载可以发送。你能指出你在协议中所说的部分吗?至少对于一个,未设置有效负载和ACK标志的分组是ACK分组。我的理解是“零长度”TCP数据包仅仅意味着发送它的一方没有有效负载可以发送。