2012-11-23 51 views
0

有人可以给我一个关于如何通过互联网传输大文件的简单想法吗?传输大文件Python

我尝试过套接字,但它不起作用。我不确定接收套接字的大小应该是多少。我试着用1024字节。我从一端发送数据,并在另一端继续接收数据。

除了套接字之外,还有别的办法可以用在Python中吗?

+1

套接字问题究竟是什么?断开连接?文件有多大? – Oren

+0

@Oren文件的大小约为2GB – Romaan

+0

“不起作用”太笼统了,如果使用torrent数量,dropbox,amazon S3文件传输它的Python客户端有时会工作。你期望发生什么?会发生什么呢?请明确点。提供一个[能够再现您的问题的完整小例子](http://sscce.org/) – jfs

回答

1

我遇到了同样的问题,我解决了它通过砍文件,然后单独发送部分(加载文件,发送文件[0:512],然后发送文件[512:1024]等等。在发送文件之前,我将文件的长度发送到接收器,以便它知道何时完成。

我知道这可能不是最好的方式来做到这一点,但我希望它能帮助你。

+0

我很惊讶你每次都需要阅读大块内容。我认为你可以通过套接字发送整个事件,然后以块的形式读出它(因为它只是将它全部读入操作系统级别的缓冲区),直到你在接收端读取它为止。只要发送一个长度的标题,你应该是金。 –

+0

我不知道这是否有必要,但这是我在遇到类似问题时能够正常工作的方式。当我试图发送整个文件时,我通常只会收到前半部分的文件。这可能是因为我的代码存在另一个问题,但我上面描述的方式确实有效。我会尝试发送长度,这绝对容易,会更好:) – Pownyan