私は、ラップトップでPythonを使ってソケット通信をテストしようとしています。しかし、私はなぜ接続が確立されていないのか分からないのですか?私はターゲットマシンが積極的に接続を拒否しているエラーを続けています。私は、クライアントとサーバーの両方の部分を実行するために同じコンピュータを使用しようとしています。サーバーは正常に動作していますが、クライアントは接続していません。私はホスト名が間違っていると思う(127.0.0.1)が、私は何を使用しているはずですか?また、サーバーホスト名を(0.0.0.0)に変更しようとしましたが、クライアントが接続しようとしていたホスト名のIPV4アドレスも変更されましたが、どちらも動作しませんでした。どんな助けもありがとう!同じコンピュータ上でクライアントとサーバをテストする
私のコード(サーバ部分):
import socket
comms_socket =socket.socket()
comms_socket.bind(('127.0.0.1', 50000))
comms_socket.listen(10)
connection, address = comms_socket.accept()
while True:
print(connection.recv(4096).decode("UTF-8"))
send_data = input("Reply: ")
connection.send(bytes(send_data, "UTF-8"))
クライアント部分:
import socket
comms_socket = socket.socket()
comms_socket.connect(('127.0.0.1',50000))
while True:
send_data = input("Message: ")
comms_socket.send(bytes(send_data, "UTF-8"))
print(comms_socket.recv(4096).decode("UTF-8"))
問題を再現できません、あなたのコードは私のマシン上で正常に動作します。 (ウィンドウズ7、Python 3.5)。あなたのコードがソケットを開くのを妨げている何らかの形のファイアウォールがインストールされているかどうか確認してください。また、これを実行しているOSは何ですか? –
このコードは私にとってもうまくいきます。ところで、通常のパターンは、サーバに空の文字列( '' '')で示される任意のアドレス( 'INADDR_ANY')をリッスンさせることです。それから、ローカルホストインタフェース( '127.0.0.1')やIPアドレスを持つ他のインタフェース経由でメッセージを受信します。クライアントは常に 'connect'に明示的なアドレスを与えなければなりません。 –
私はWindows 10、python 3.5を使用しています。私はPythonシェルで実行していたときに問題を起こしていたのはIDLEだと思います。私が直接走った時、プログラムはうまくいった。助けてくれてありがとう –