python實現(xiàn)TCP文件傳輸
前幾天已經(jīng)講過了UDP協(xié)議下大文件傳輸?shù)膒ython實現(xiàn)代碼,今天再實現(xiàn)TCP協(xié)議下大文件傳輸?shù)膒ython實現(xiàn)代碼。
TCP和UDP的實現(xiàn)過程還是比較不一樣的。
實現(xiàn)代碼:
服務(wù)端:
import socket
import time
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('127.0.0.1',9999))
s.listen(5)
print('Waiting for connection...')
while True:
sock,addr = s.accept()
print('Accept new connection from %s:%s...' % addr)
if count == 0:
data1 = sock.recv(1024)
print(str(data1))
file_total_size = int(data1.decode())
received_size = 0
sock.send('received'.encode())
data = sock.recv(1024)
filepath = str(data.decode())
f = open(filepath, 'wb')
while received_size < file_total_size:
data = sock.recv(1024)
f.write(data)
received_size += len(data)
print('已接收 ',received_size,' Byte')
data = sock.recv(1024)
if data == b'end':
break
f.close()
s.close()
客戶端:
import socket
import os
import time
filename = input('please enter the filename you want to send:\n')
filesize = str(os.path.getsize(filename))
fname1, fname2 = os.path.split(filename)
client_addr = ('127.0.0.1',9999)
f = open(filename,'rb')
count = 0
flag = 1
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#建立連接:
s.connect(('127.0.0.1', 9999))
while True:
if count == 0:
s.send(filesize.encode())
start = time.time()
s.recv(1024)
s.send(fname2.encode())
for line in f:
s.send(line)
print('sending...')
s.send(b'end')
break
s.close
end = time.time()
print('cost' + str(round(end - start, 2)) + 's')
運行截圖:
服務(wù)器端:

客戶端:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強
這篇文章主要介紹了詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
python實現(xiàn)搜索指定目錄下文件及文件內(nèi)搜索指定關(guān)鍵詞的方法
這篇文章主要介紹了python實現(xiàn)搜索指定目錄下文件及文件內(nèi)搜索指定關(guān)鍵詞的方法,可實現(xiàn)針對文件夾及文件內(nèi)關(guān)鍵詞的搜索功能,需要的朋友可以參考下2015-06-06
Python數(shù)據(jù)可視化庫seaborn的使用總結(jié)
這篇文章主要介紹了Python數(shù)據(jù)可視化庫seaborn的使用總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
Tensorflow卷積神經(jīng)網(wǎng)絡(luò)實例
這篇文章主要為大家詳細介紹了Tensorflow卷積神經(jīng)網(wǎng)絡(luò)實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
python打包為linux可執(zhí)行文件的詳細圖文教程
這篇文章主要給大家介紹了關(guān)于python打包為linux可執(zhí)行文件的詳細圖文教程,本文介紹的方法可以輕松地將Python代碼變成獨立的可執(zhí)行文件,需要的朋友可以參考下2024-02-02
python 兩個數(shù)據(jù)庫postgresql對比
這篇文章主要介紹了python 兩個數(shù)據(jù)庫postgresql對比,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10
Python爬蟲框架scrapy實現(xiàn)的文件下載功能示例
這篇文章主要介紹了Python爬蟲框架scrapy實現(xiàn)的文件下載功能,結(jié)合實例形式分析了scrapy框架進行文件下載的具體操作步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-08-08

