pythonのsocketでクライアントがスクリーンショットを取りバイナリをとりsocketでそのバイナリを送りサーバーがバイナリを受取、ファイルに書き込み保存するプログラムなのですが、保存されません。
python3
1#サーバー 2# socket サーバを作成 3 4import socket 5 6# AF = IPv4 という意味 7# TCP/IP の場合は、SOCK_STREAM を使う 8with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: 9 s.bind(('127.0.0.1', 50007)) 10 s.listen(1) 11 # connection するまで待つ 12 while True: 13 conn, addr = s.accept() 14 with conn: 15 while True: 16 # データを受け取る 17 data = conn.recv(8000) 18 with open('./moka.png',mode='wb') as wb: 19 #moka.pngはあらかじめつくってあります 20 binary = data 21 wb.write(binary) 22 if not data: 23 break
python3
1#クライアント 2import pyautogui 3import socket 4 5num = 0 6while True: 7 s = pyautogui.screenshot() 8 s.save("pict.png") 9 print(num) 10 num = num + 1 11 with open("./pict.png",mode='rb') as bin: 12 binary = bin.read() 13 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: 14 # サーバを指定 15 s.connect(('127.0.0.1', 50007)) 16 print(binary) 17 s.sendall(binary) 18 print("送信")
回答2件
あなたの回答
tips
プレビュー