我不知道這是否已被回答(我在網上查找,但找不到),但我怎麼能發送一個文件(如果可能的話)通過網絡到另一臺連接到網絡的計算機?我嘗試過套接字,但是我只能發送字符串,並且我試圖學習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. 如何在兩臺計算機之間傳遞大量數據
- 8. 如何在計算機之間傳輸Smalltalk文件?
- 9. 同步連接LAN電纜的兩臺Windows 7計算機之間的時間
- 10. 使用WiFi連接在兩臺計算機之間發送數據(文本)C#
- 11. 如何在低速連接的兩臺計算機之間使用Ant複製文件?
- 12. Python的套接字:如何連接兩臺計算機上相同的WiFi
- 13. 計算機之間的RMI連接
- 14. 通過無線連接的兩臺計算機之間的信息交換
- 15. 在樹莓派和多臺Linux OS計算機之間傳輸文件?
- 16. 在網絡計算機之間傳輸文件
- 17. 如何在兩臺計算機之間共享svn存儲庫
- 18. 如何在兩臺計算機之間同步Angular CLI版本?
- 19. Python - 計算文件傳輸時間
- 20. 如何在兩臺防火牆後面的幾臺計算機之間建立TCP連接?
- 21. 不能連接兩臺計算機之間在同一局域網插座
- 22. 兩個Android手機之間的Android套接字文件傳輸
- 23. Python:通過套接字在兩臺計算機之間發送數據
- 24. 2臺計算機之間的ipsec
- 25. 兩臺計算機之間使用python套接字進行通信
- 26. 如何在不同計算機上的2個軟件之間傳輸數據
- 27. 當只有一臺計算機時,如何模擬連接局域網的兩臺計算機?
- 28. 兩個Python文件中的對象之間的連接
- 29. 將ASP.NET文件從本地計算機傳輸到另一臺計算機
- 30. 如何在Java中的計算機之間高效地傳輸對象
當然可以用普通套接字來做到這一點。你嘗試了什麼? – 2012-01-04 04:12:22
你應該只使用'scp'甚至是'rsync' + – wim 2012-01-04 04:18:59