我不知道之前是否已经回答过这个问题(我在网上看了但找不到),但我如何通过网络将文件(如果可能的话.exe)发送到另一台连接到网络?我试过套接字,但我只能发送字符串,我试图学习ftplib,但我根本不理解它,或者如果ftp甚至是我正在寻找的东西,所以我完全停顿了。任何输入都值得赞赏(如果有人可以解释FTP,就更像是套接字吗?我见过的所有示例都没有客户端可以连接的服务器程序。)
答案 0 :(得分:7)
一个。我有时会使用SimpleHTTPServer
:
python -m SimpleHTTPServer
...将在端口8000上为当前目录中的文件提供服务。在另一台计算机上打开您的Web浏览器并下载您想要的任何内容。
要知道您的计算机的IP地址,您可以使用(在Ubuntu中)ifconfig,例如:
$ 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 :(得分:5)
发送方的一些简单示例代码:
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)
答案 2 :(得分:3)
查看paramiko。它可以做scp和sftp。
答案 3 :(得分:3)
ZeroMQ有助于替换套接字。
您可以在一个命令中发送整个文件。
ZMQ'派对'可以用任何主要语言编写,对于给定的ZMQ驱动的软件,它写入的另一端并不重要。
从他们的网站:
它为您提供了可以跨越各种方式传输整个消息的套接字 传输,进程间,TCP和多播等传输。您可以 将套接字N-to-N与fanout,pub-sub,task等模式连接起来 分发和请求回复。