Tôi không biết nếu điều này đã được trả lời trước đó (tôi đã xem trực tuyến nhưng không thể tìm thấy), nhưng làm cách nào tôi có thể gửi tệp (.exe nếu có thể) qua mạng đến một máy tính khác được kết nối với mạng ? Tôi đã thử ổ cắm nhưng tôi chỉ có thể gửi dây và tôi đã cố gắng để tìm hiểu ftplib nhưng tôi không hiểu nó ở tất cả hoặc nếu ftp là ngay cả những gì tôi đang tìm kiếm, vì vậy tôi đang ở một bế tắc hoàn toàn. Bất kỳ đầu vào được đánh giá cao (thậm chí nhiều hơn như vậy nếu ai đó có thể giải thích FTP, nó giống như ổ cắm? Tất cả các ví dụ tôi đã thấy không có một chương trình máy chủ mà khách hàng có thể kết nối.)Làm thế nào để chuyển tệp giữa hai máy tính được kết nối trong python?
Trả lời
Một số mã ví dụ đơn giản cho phía gửi:
if os.path.exists(df):
with open(df, 'rb') as f:
packet = f.read(blocksize)
while packet != '':
conn.send(packet)
packet = f.read(blocksize)
đâu:
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)
ok cảm ơn, vì vậy là FTP không cần thiết sau đó? Tôi vẫn không thực sự hiểu những gì nó được sử dụng cho – Baboon
@Baboon - FTP là một giao thức chuyên biệt cho việc chuyển tập tin, vâng. Nó bao gồm một số tiện ích mà máy khách/máy chủ đồng ý - thừa nhận, cập nhật trạng thái, thử lại, đồng thời, vv Bạn có thể đọc toàn bộ thông số trong RFC này: https://www.ietf.org/rfc/rfc959.txt.Tuy nhiên, FTP không phải là cách duy nhất để chuyển một tập tin, và sử dụng ổ cắm để truyền dữ liệu chắc chắn là có thể. Thông thường, Máy chủ và Máy khách cần đồng ý về từ vựng/hộp thoại và biết cách đồng ý khi tệp đã được chuyển hoàn toàn. –
A. Tôi sử dụng SimpleHTTPServer
cho điều này đôi khi:
python -m SimpleHTTPServer
... sẽ phân phối tệp trong thư mục hiện tại trên cổng 8000. Mở trình duyệt web của bạn trên máy tính khác và tải xuống bất kỳ thứ gì bạn muốn.
Để biết địa chỉ IP của máy tính của bạn, bạn có thể sử dụng (trong Ubuntu) ifconfig, ví dụ:
$ 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
Sau đó, trong máy tính khác, bạn gửi cho trình duyệt: http://10.0.0.3:8000.
B. Nếu bạn đã bật SSH, bạn có thể sử dụng paramiko để kết nối và chuyển giao SFTP bất cứ điều gì bạn muốn.
+1 cho hai phần kiến thức có giá trị mà bạn vừa thêm vào tiết mục của mình! – Thanatos
Kiểm tra paramiko. Nó có thể làm scp và sftp.
ZeroMQ giúp để thay thế ổ cắm.
Bạn có thể gửi toàn bộ tệp trong một lệnh.
Một ZMQ 'bên' có thể được viết bằng bất kỳ ngôn ngữ chủ yếu và cho một phần mềm ZMQ-powered nhất định, nó không có vấn đề gì bên kia nó viết bằng
Từ trang web của họ:.
Nó cung cấp cho bạn các ổ cắm mang toàn bộ thông điệp trên các phương tiện vận tải khác nhau như như trong quá trình, liên tiến trình, TCP và multicast. Bạn có thể kết nối ổ cắm N-to-N với các mẫu như fanout, pub-sub, nhiệm vụ phân phối và trả lời yêu cầu.
- 1. Tạo kết nối giữa hai máy tính trong trăn
- 2. Cách nhanh nhất để gửi gói tin giữa hai máy tính được kết nối?
- 3. Làm cách nào để gửi chuỗi giữa hai máy tính?
- 4. Làm thế nào để nối hai ma trận trong Python?
- 5. Làm thế nào để nối hai tệp tcpdump (tệp pcap)
- 6. Kết nối hai daemon trong python
- 7. Làm thế nào để hai máy tính kết nối với cùng một địa chỉ bên ngoài thông qua NAT?
- 8. Làm thế nào để chuyển các tệp từ máy tính này sang máy tính khác qua mạng bằng Java?
- 9. Làm thế nào để kết nối Sqlcmd với máy chủ?
- 10. Làm thế nào để có được tổng số giờ giữa hai ngày trong máy chủ sql?
- 11. Làm thế nào để chuyển đổi giữa python 2,7 sang python 3 từ dòng lệnh?
- 12. Kết nối giữa 2 máy tính qua modem quay số mà không cần internet trong C#
- 13. Làm thế nào để có được sự khác biệt của hai tập tin PDF trong python?
- 14. Làm thế nào để xác định xem hai nút được kết nối?
- 15. làm thế nào để nối hai từ điển để tạo một từ điển mới trong Python?
- 16. Làm thế nào để trừ hai danh sách trong python
- 17. Làm thế nào để có được toàn bộ nội dung giữa hai thẻ xml bằng Python?
- 18. Làm thế nào để sử dụng bluetooth để kết nối hai iPhone?
- 19. Làm cách nào để kết nối hai máy chủ node.js với ổ cắm web?
- 20. Máy khách-Khách: Chuyển tệp từ Android sang PC được kết nối qua cổng
- 21. Làm thế nào để nối hai ma trận trong Python OpenCV?
- 22. Máy tính để bàn Emacs không nhớ kết nối TRAMP?
- 23. Python: gửi dữ liệu giữa hai máy tính qua ổ cắm
- 24. Làm thế nào để tính toán sự khác biệt giữa hai bộ trong C?
- 25. Làm thế nào để nối hai dòng một cách nhanh chóng trong Vim?
- 26. Chuyển thiết lập Python qua máy tính khác nhau
- 27. Làm thế nào để tạo bản vá giữa hai thẻ với nhiều cam kết giữa chúng?
- 28. Làm thế nào để sử dụng cùng một kết nối cho hai truy vấn trong Spring?
- 29. vùng Fill giữa hai thành phần kết nối trong MATLAB
- 30. Làm thế nào để bạn tính toán góc giữa hai normals trong glsl?
Chắc chắn có thể làm điều này với ổ cắm thông thường. Bạn đã thử gì? –
Bạn chỉ nên sử dụng 'scp' hoặc thậm chí 'rsync' – wim