1
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname() # Get local machine name
port = 12345          # Reserve a port for your service.
s.bind((host, port))        # Bind to the port
s.listen(5)                 # Now wait for client connection.
print "entered loop"
c, addr = s.accept()     # Establish connection with client.

このコードを使用して、ソケットを作成し、Android からの接続を受け入れるだけでした。十分に単純です。
しかし、過去数時間 (コードに変更はありません) 以来、python は何らかの理由でソケットを作成できません。エラーは発生しませんが、s.accept()行で永遠にスタックしています。

Android のネットワーク診断アプリを使用して、開いているポートを確認しようとしFingましたが、実際、Python はソケットを作成/開くことができません。以前、コードを実行して Fing を再スキャンするとすぐに、ポートが開いていることがわかり、そのポートで TCP 接続をテストすることができました。

場合によっては、ランダムに、1 回または 2 回の試行で機能することがあります。

何がうまくいかないのですか?ポートを変更してみました。エラーがないので、何をデバッグすればよいかわかりません。

4

1 に答える 1

0

同じエラーが発生します。Socket を閉じていないことが原因でした。ソケットを閉じてみてください。それ以外の場合は、実行するたびに一度だけ機能し、その後問題を引き起こし始めます。

于 2013-10-22T07:08:58.713 に答える