PythonはTCPファイル転送を実装します

数日前、UDPプロトコルでのラージファイル送信用のpython実装コードについてはすでに説明しましたが、今日はTCPプロトコルでのラージファイル送信用のpython実装コードを実装します。
TCPとUDPの実現プロセスはまったく異なります。

実装コード:

サーバ:

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')

スクリーンショットを実行します。

サービスターミナル:

クライアント:

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

PythonはTCPファイル転送を実装します
Pythonはftpファイル転送機能を実装しています
Pythonファイル操作
python_ファイル処理
Pythonはスーパーマリオを実装しています
Pythonはtic-tac-toeゲームを実装しています
Pythonはマンマシンゴバンを実装します
PythonはTetrisゲームを実装しています
Pythonは画像スティッチングを実装しています
Pythonはminesweeperゲームを実装しています
Pythonはスキャンツールを実装しています
Pythonはしきい値回帰を実装します
Pythonは地雷除去ゲームを実装しています
Pythonは電子辞書を実装しています
Pythonは推測ゲームを実装しています
Pythonは単純なタンクバトルを実装します
Pythonはudpチャットウィンドウを実装します
PythonTCPパケットインジェクション方式
PythonはWeChat飛行機ゲームを実装しています
Pythonは単語推測ゲームを実装しています
Pythonは推測ゲームを実装しています
Pythonは駐車場管理システムを実現
Pythonnumpyはローリングケースを実装します
OpenCVPythonはパズルゲームを実装しています
Pythonは単純なtic-tac-toeゲームを実装しています
Pythonはパスワード強度検証を実装します
Pythonは車の管理システムを実装しています
Pythonトルネードアップロードファイル機能
Pythonはコードブロックフォールディングを実装します
Pythonはパノラマ画像スティッチングを実装しています
PythonはSMTPメール送信を実装します
Pythonは多次元配列ソートを実装しています
PythonがFTP機能を実装する方法
Pythonは平均シフトクラスタリングアルゴリズムを実装しています
Pythonは検証コード認識を実装します
Pythonは勾配降下法を実装しています
Pythonはテキストバージョンのminesweeperを実装しています
クイックスタートPythonファイル操作
Pythonは画像スティッチング機能を実装しています
Pythonは実店舗のゲームを実装しています
Pythonファイルの読み取りおよび書き込み操作
Pythonがメール機能を実装する方法
python設定ファイルの書き方
Python3はシングルトンデザインパターンを実装しています
Pythonは為替レート変換操作を実装します
Pythonは文字列と数値のスプライシングを実装します
Pythonファイル操作の基本的なプロセス分析
Pythonは10の古典的なソートアルゴリズムを実装しています
PythonはユニバーサルWebフレームワークを実装しています
Pythonは、メールを送信するために126のメールボックスを実装しています
PythonはAIフェイスチェンジ機能を実装しています
Pythonは最も急な降下方法を実装します
Pythonは実際の銀行システムを実装しています
Pythonはデジタル爆弾ゲームプログラムを実装しています
Pythonはユーザー名とパスワードの検証を実装しています
Pythonがファイルディレクトリでどのように動作するか
Pythonがタイマー機能を実装する方法
Pythonは航空機戦争プロジェクトを実装します
Pythontcp伝送コードの例の分析
Pythonは写真の水平ステッチを実装しています
PythonはGIFグラフを逆さまに実装します