前提・実現したいこと
初めて質問します。
クライアントとサーバーのシステムを作っていて、何回もクライアント側からメッセージを送れるようにしたいです
発生している問題・エラーメッセージ
2回目に文字を打つと
client.py", line 24, in <module> receive_msg = sock.recv(BUFSIZE) ConnectionAbortedError: [WinError 10053] 確立された接続がホスト コンピューターのソウトウェアによって中止されました。 と出てしまいます。 24行目はreceive_msg = sock.recv(BUFSIZE)です。
該当のソースコード
Python
1 2クライアント側 3# -*- coding: utf-8 -*- 4 5import socket 6 7#接続先ホストの名前(あるいはIPアドレス) ローカルホスト 8HOST='127.0.0.1' 9#接続先ホストのポート番号 10PORT = 50001 11#ソケットから受信するデータのバッファサイズ 12BUFSIZE = 4096 13 14#ソケットの作成 15sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 16try: 17 #サーバへの接続 18 sock.connect((HOST,PORT)) 19 flag = True 20 while flag: 21 #メッセージを入力 22 mesg=input('input message :')#この行を加えた 23 #バイトコード化してデータ送信 24 sock.send(mesg.encode()) 25 #データを受信 26 receive_msg = sock.recv(BUFSIZE) 27 print(receive_msg) 28 if mesg=='end': 29 flag = False 30finally: 31 #接続のクローズ 32 sock.close() 33print('end') 34 35 36サーバー側 37# -*- coding: utf-8 -*- 38 39import socket 40 41#サーバのホスト名(あるいはIPアドレス) 42HOST='127.0.0.1' 43#ポート番号 44PORT = 50001 45#接続の最大数 46BACKLOG = 10 47#ソケットから受信するデータのバッファサイズ 48BUFSIZE = 4096 49 50print('try socket') 51#ソケットを作成する 52sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 53print('try connect') 54 55try: 56 #作成したソケットにアドレスとポート番号を設定 57 sock.bind((HOST , PORT)) 58 sock.listen(BACKLOG) 59 while True: 60 #clientからの接続を開始 61 conn, address = sock.accept() 62 try: 63 #recv:ソケットからデータを受信 64 b_msg = conn.recv(BUFSIZE) 65 #バイトコードが送られてくるのでデコードする 66 msg = b_msg.decode('utf-8') 67 print('receive msg:'+ msg) 68 #ソケットにデートを送信 69 conn.send(b'you sent"' + b_msg + b'"') 70 finally: 71 #接続のクローズ 72 conn.close() 73finally: 74 #接続のクローズ 75 sock.close() 76print('end') 77 78
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/21 13:35
2020/05/21 13:38
2020/05/21 14:01 編集
2020/05/21 14:51