Pythonでは、クライアントとサーバーの両方を同じプログラムで同時に実行できます。クライアントを外部サーバーとサーバーに接続して、その外部サーバーから同時にメッセージを受信したい。サーバーがその外部サーバーからメッセージを受信するたびに、クライアントはそれに応じてその外部サーバーにメッセージを送信する必要があります。
以下は私がそれを達成しようとした方法です(接続部分だけ)
import select
import socket
host = 'localhost'
portClient = 6000
portServer = 7000
backlog = 5
size = 1024
client = socket.socket()
server = socket.socket()
client.connect((host,portClient))
client.send('#JOIN')
server.bind((host,portServer))
server.listen(backlog)
running = 1
while running:
c,address = server.accept()
c.close()
client.close()
server.close()
このコードを実行しても、外部サーバーからの応答がありません。whileループを省略した場合。サーバーが外部サーバーの受け入れを積極的に拒否したというエラーが表示されます。
Python selectモジュールまたはThreadingモジュールを使用してこれを達成できますか?それとももっと良い方法はありますか?