サーバーと通信し、データを取得し、サーバーにデータを送信するpythonスクリプトを作成しました。これは、ある種の「エコークライアント」です。
これは私が書いたものです:
import socket
import time
def netcat(hostname, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((hostname, port))
s.shutdown(socket.SHUT_WR)
while 1:
data = s.recv(1024)
if data == "":
break
print "Received:", repr(data)
data = data.replace("\n", "")
time.sleep(1)
s.sendall(data)
print "Sent:", data
print "Connection closed."
s.close()
netcat("127.0.0.1", 4444)
私はこの出力を取得します:
Received: 'Welcome!\n'
そしてその後、私はこのエラーを受け取ります:
Traceback (most recent call last):
File "client.py", line 22, in <module>
netcat("127.0.0.1", 4444)
File "client.py", line 17, in netcat
s.sendall(data)
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 32] Broken pipe
オンラインでこのエラーの解決策を探していましたが、運がありません。
誰かが私がそれを理解するのを助けてくれますか?
ありがとうございました
回答 1 件
関連記事
- HotChocolateサーバーとStrawberryShakeクライアントを単一のプロセスでホストします
- Pythonで壊れたパイプエラーを修正する方法は? (IRCクライアントでの作業)
- Pythonでサーバーを閉じた後、クライアントソケットでサーバーをリッスンし続けるにはどうすればよいですか?
- クライアント側でサーバー側の機能をどのように実行しますか?
- Docker:CMD/EntryPointをフォーマットして、クライアントとサーバーを同じ端末で実行するにはどうすればよいですか?
- クライアント側からサーバー側のボタンクリック関数を呼び出す
- サーバープログラムは、実際のクライアントIPではなく私のIPを着信接続のソースとして認識します
- PythonWebSocketクライアントのクローズ接続
- gRPCPythonでサーバーストリームの初期メタデータを送信する方法
- サーバー統合を備えたPayPalクライアント側JavaScriptSDK:お支払い金額の設定
私は最近ソケットに取り組んでいます。コードをテストするためのサーバーが現在ないので、表示されている内容についてすぐにコメントすると思いました。最初はソケットを(書き込み用に)シャットダウンしているように見えるため、受信ステートメントは機能しましたが、sendallステートメントは失敗します。