を使用して、メインスレッドとは別のスレッドでポート 6677 をリッスンする単純な TCP サーバーを起動しますthreading.start_new_thread()
。基本的に、このサーバーが行うことは次のとおりです。
sock = socket(AF_INET, SOCK_STREAM)
sock.bind(('', 6677))
sock.listen(5)
...
print 'Listening...'
while True:
conn, addr = sock.accept()
print 'connected!'
...
別のスレッドでそのサーバーを起動した後、メイン スレッドで単純な Flask アプリケーションを実行します。
app.run()
デフォルトではポート 5000 を使用します。Flask アプリは正常に動作しますが、他のスレッドの bind() 呼び出しで [Errno 98] アドレスが既に使用されています。これは、二次スレッドから「Listening ...」が出力された後です。ここで行われている黒魔術は何ですか?2 つのサーバーが同じアドレスの異なるポートでリッスンできないことはありますか?