Python使用socket_TCP實現小檔案下載
伺服器
import socket
# 1.建立套接字
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.繫結埠
server.bind(('127.0.0.1', 7890))
# 3.變為被動監聽模式
server.listen(4)
while True:
# 4.等待客戶端連結
s_new, addr = server.accept()
print('使用者【{}】已經成功連線!!'.format(addr[0]))
while True:
# 5.接受訊息
try:
# 若客戶端強行斷開連線伺服器不會崩潰
recv_data = s_new.recv(1024).decode('utf-8')
if recv_data:
print('來自【{}】的使用者表示要下載: 【{}】'.format(addr[0], recv_data))
# 6.傳送訊息
try:
f = open(recv_data, 'rb')
content = f.read()
send_data = s_new.send(content)
f.close()
print('下載成功!')
except Exception as result:
send_data = s_new.send('Non'.encode('utf-8'))
print('未找到要下載的檔案')
else:
print('使用者已經正常退出!')
break
except Exception as res:
print('使用者已經退出連線!')
break
s_new.close()
# 7,關閉套接字
server.close()
客戶端
import socket
# 建立套接字
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 繫結IP地址
s.connect(('127.0.0.1', 7890))
while True:
# 傳送資料
send_data = str(input('請輸入想要下載的檔名:'))
if send_data == 'exit':
print('已退出下載!')
break
s.send(send_data.encode('utf-8'))
# 接收資料
recv_data = s.recv(2048)
if recv_data == 'Non'.encode('utf-8'):
print('未找到要下載的檔案!')
else:
with open('【new】' + send_data, 'wb') as f:
f.write(recv_data)
print('[{}]下載成功!'.format(send_data))
f.close()
# 關閉套接字
s.close()
執行結果(伺服器):
執行結果(客戶端):
檔案結果;
相關文章
- 使用Servlet實現檔案下載Servlet
- Flutter實現檔案下載Flutter
- AJAX實現檔案下載----
- Flutter 實現檔案下載功能Flutter
- vc實現https檔案下載HTTP
- Java實現檔案下載功能Java
- React中使用fetch實現檔案上傳下載React
- js實現使用檔案流下載csv檔案JS
- js實現txt/excel檔案下載JSExcel
- 2020JavaWeb實現檔案下載JavaWeb
- Feign實現檔案上傳下載
- js下載檔案的實現方式JS
- python之檔案下載Python
- python 下載檔案demoPython
- vue/js實現檔案流下載,檔案下載進度監聽VueJS
- SpringMVC實現檔案上傳&下載(2)SpringMVC
- flutter使用dio實現 檔案下載並實現進度監聽總結Flutter
- javaWeb不生成臨時檔案實現壓縮檔案下載JavaWeb
- iis實現點選檔案下載而不是開啟檔案
- 使用Vue+go實現前後端檔案的上傳下載,csv檔案上傳下載可直接照搬VueGo後端
- 前端實現檔案下載和拖拽上傳前端
- .netcore+vue 實現壓縮檔案下載NetCoreVue
- java實現檔案的下載的方法概述Java
- 使用 header 頭下載檔案Header
- Java實現多檔案邊壓縮邊下載Java
- Java多執行緒檔案分片下載實現Java執行緒
- Javascript 實現一個post方式的檔案下載JavaScript
- OSS實現檔案下載進度條顯示
- vue實現Excel檔案的上傳與下載VueExcel
- JavaWeb之實現檔案上傳與下載工具JavaWeb
- JavaWeb之實現檔案上傳與下載元件JavaWeb元件
- JavaWeb之實現檔案上傳與下載示例JavaWeb
- Python展示檔案下載進度條Python
- Golang 使用http Client下載檔案GolangHTTPclient
- 如何使用curl命令下載檔案
- 使用SecureCRT上傳下載檔案Securecrt
- 點選按鈕,實現檔案下載,通過按鈕傳送url,spring後臺實現伺服器端檔案下載。Spring伺服器
- ubunt18.04 下 aria2 的下載與使用並實現百度雲大檔案的下載