我不知道这是否已被回答(我在网上查找,但找不到),但我怎么能发送一个文件(如果可能的话)通过网络到另一台连接到网络的计算机?我尝试过套接字,但是我只能发送字符串,并且我试图学习ftplib,但是我根本不明白它,或者如果ftp甚至是我正在寻找的,所以我处于完全停顿状态。任何输入是赞赏的(更有甚者,如果有人可以解释FTP,它是否像套接字?我见过的所有例子都没有服务器程序,客户端可以连接到)如何在python中的两台连接的计算机之间传输文件?
回答
为发送方的一些简单的例子代码:
if os.path.exists(df):
with open(df, 'rb') as f:
packet = f.read(blocksize)
while packet != '':
conn.send(packet)
packet = f.read(blocksize)
其中:
df = 'path/to/data/file'
blocksize = 8192 # or some other size packet you want to transmit.
# Powers of 2 are good.
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
好的谢谢,那么FTP不需要吗?我仍然没有真正明白它的用途 – Baboon 2012-01-04 22:42:30
@Baboon - FTP是一个专门的文件传输协议,是的。它包含客户端/服务器达成的许多便利 - 确认,状态更新,重试,并发等。您可以阅读RFC中的完整规范:https://www.ietf.org/rfc/rfc959.txt。但是,FTP并不是传输文件的唯一方式,使用套接字传输数据绝对有可能。通常,服务器和客户端需要就词汇/对话达成一致,并知道如何就文件完全传输达成一致。 – 2012-01-04 23:19:42
A.我使用SimpleHTTPServer
这有时会:
python -m SimpleHTTPServer
...这将成为该文件在当前目录在端口8000打开任何你想要的其他计算机和下载的Web浏览器。
要知道你的计算机的IP地址,你可以使用(在Ubuntu)的ifconfig,e.g:
$ ifconfig
enp0s31f6 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:10.0.0.3 Bcast:10.0.0.255 Mask:255.255.255.0
然后在另一台计算机,您发送的浏览器:http://10.0.0.3:8000。
B.如果您启用了SSH,您可以使用paramiko连接和SFTP传输任何你想要的。
+1来加入你刚添加到我的曲目中的宝贵知识! – Thanatos 2012-01-04 05:06:59
退房paramiko。它可以做scp和sftp。
ZeroMQ有助于更换插座。
您可以用一个命令发送整个文件。
一个ZMQ“党”可以用任何一种主要语言和给定ZMQ驱动软件,它不事关什么的另一端是写着
从他们的网站:。
它为您提供了套接字,这些套接字可以在各种不同的传输中传输整个消息,如进程内,进程间,TCP和组播。您可以使用 将套接字N对N连接到fanout,pub-sub,任务 分发和请求回复等模式。
- 1. 如何在两台计算机之间传输数据?
- 2. 如何模拟两台计算机之间的无线连接?
- 3. 在NAT之后的两台计算机之间建立连接
- 4. 局域网内两台计算机之间的数据传输
- 5. 在两台计算机之间移动连接和实例
- 6. 如何在两台计算机之间传递大量数据
- 7. 同步连接LAN电缆的两台Windows 7计算机之间的时间
- 8. 使用WiFi连接在两台计算机之间发送数据(文本)C#
- 9. 如何在低速连接的两台计算机之间使用Ant复制文件?
- 10. 通过无线连接的两台计算机之间的信息交换
- 11. 在树莓派和多台Linux OS计算机之间传输文件?
- 12. 如何在两台计算机之间共享svn存储库
- 13. Python - 计算文件传输时间
- 14. 如何在两台防火墙后面的几台计算机之间建立TCP连接?
- 15. 不能连接两台计算机之间在同一局域网插座
- 16. 两台计算机之间使用python套接字进行通信
- 17. 如何在不同计算机上的2个软件之间传输数据
- 18. 当只有一台计算机时,如何模拟连接局域网的两台计算机?
- 19. 将ASP.NET文件从本地计算机传输到另一台计算机
- 20. 计算两台摄像机之间的基线距离(图像)
- 21. 两台远程计算机之间的同步(时钟)
- 22. TCP/IP在两台计算机之间不工作
- 23. 使用网络连接在同一个房间内的两台计算机之间共享数据库?
- 24. 两台Linux计算机上的Oracle jdbc连接
- 25. 在两台PHP服务器之间传输文件
- 26. 建立计算机之间的套接字连接?
- 27. C#通过计算机之间的套接字连接
- 28. 计算两次python之间的差异
- 29. 同一台计算机上的两个程序之间的通信 - 如何?
- 30. 如何计算python文件中两个字符之间的行数?
当然可以用普通套接字来做到这一点。你尝试了什么? – 2012-01-04 04:12:22
你应该只使用'scp'甚至是'rsync' + – wim 2012-01-04 04:18:59