クライアントの インポートソケット インポートのOS インポートJSON インポート構造体 クライアント = socket.socket() client.connect((「127.0.0.1 」、12000 )) 「」 " へのファイルパスを取得し たファイルパスの下にファイルを取得し 、印刷を循環させるためのプラス印刷ファイルの列挙内容 ユーザーがコンテンツをアップロードすることを選択する デジタル入力か否かを判断する int型の数への入力は、その後で 、この数は、文書の内容よりも大きいか否かを判定する ユーザによって選択されたパスをスプライシングすることによって取り出し 、ユーザがファイルのコンテンツを選択削除する 辞書を作成します、の内容に名前を選択する シリアル化された辞書の辞書はするターンの背後にあるバイナリ文字列になります ヘッダの辞書作成し た辞書ヘッダー送信され 、その後の後にシーケンスを送信、辞書を によると、文書を循環させるためのオープンファイルハンドル の後に送信サイクル文字 「」 " しばらく真: HUOQU = R " D:\歳の少年の\学習教材ビデオ\ \ day30の\ビデオ" PATHは = os.listdir(HUOQU) のための I、J で列挙(PATH、1 ): 印刷(私は、J) の選択は、(INPUTを= " :>>>番号を入力してください" ) のIF choice.isdigit(): 選択 = INT(選択)-1 IFの選択で範囲(0、LEN(PATH)): Wenjianは = os.path.join(HUOQU、PATH [チョイス]) neirong = os.path.getsize(Wenjian) D = {" 名前":" 欧美精选" " FILE_SIZE " :neirong} byths = json.dumps(D).encode(" UTF-8 " ) suoxiaoshuju = struct.pack(" I 」、LEN(byths)) client.send( suoxiaoshuju) client.send(byths) オープン(wenjian、と" RB " Fなど): 用 I でF: client.send(ⅰ)他: プリント( 「範囲外」) 他: 印刷(「非数」)
サーバーの インポートソケット インポートJSON インポート構造体の サーバー = socket.socket() server.bind((" 127.0.0.1 "、12000 )) server.listen( 5 ) "" " ゲットファイルヘッダ ファイルヘッダほぐし GETファイル ファイルデシリアライズ、文字列辞書プログラムは、 辞書にデータを取り込む ファイルの初期長さを作成するために、 データ・ディクショナリ・ファイルを読み取るために 、ファイル内のデータが内辞書データ決意より大きい場合 1024取ら各バイト F.削除 ファイルの長さ+を各フェッチバイト「」 " しばらく真: コネティカット、MSG = server.accept() しばらく真: 試し: RES = conn.recv(4 ) RES1 = struct.unpack(" I " 、RES)[0] RES2 = conn.recv(RES1) RES3 = json.loads(res2.decode(" UTF-8 " )) RES4 = res3.get(" FILE_SIZE " ) dic_size = 0 開く(res3.get(" 名前")、" WB " Fとして): 一方 dic_size < RES4。 データ = conn.recv(1024RECV(1024 ) f.write(データ) dic_size + = LEN(データ) 印刷(" sahngchuan " ) を除き、eとConnectionError: ブレーク はconn.close()