post_server
輸入ソケット 輸入OS SK = socket.socket() アドレス =(' 127.0.0.1 '、8000 ) sk.bind(アドレス) sk.listen( 3 ) 印刷(' 待って... ' ) BASE_DIR = os.path.dirname (os.path.abspath(__FILE__ )) 、一方 1 : CONN、ADDR = sk.accept() 一方、 1 : データ = conn.recv(1024 ) CMD、ファイル名、ファイルサイズ = STR(データ、'UTF-8 ').split(' | ' ) パス = os.path.join(BASE_DIR、' ポスト' ファイル名) ファイルサイズ = INT(ファイルサイズ) F =オープン(パス、' AB " ) has_receive = 0 しばらく has_receive! = ファイルサイズ: データ = conn.recv(1024 ) f.write(データ) has_receive + = LEN(データ) f.close()
post_client:
輸入ソケット 輸入OS SK = socket.socket() アドレス =(' 127.0.0.1 '、8000 ) sk.connect(アドレス) BASE_DIR = os.path.dirname(os.path.abspath(__FILE__ )) しばらく真: INP =入力(' >>> ' ).strip() CMD、パス = inp.split(' | ' ) パス = os.path.join(BASE_DIR、パス) ファイル名 = os.path.basename(パス) FILE_SIZE =os.stat(パス).st_size file_info = ' ポスト|%S |%S '%(ファイル名、FILE_SIZE) sk.sendall(バイト(file_info、' UTF-8 ' )) F =オープン(パス、' RB ' ) データ = f.read(1024 ) has_sent = 0 しばらく has_sent =!FILE_SIZE: データ = f.read(1024 ) sk.sendall(データ) has_sent + = LEN(データ) f.close() 印刷(' 上传成功')