0

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モジュールを使用してこれを達成できますか?それとももっと良い方法はありますか?

4

1 に答える 1

2

TCP ソケットは双方向のバイト ストリームです。サーバーとのすべての通信は、同じ単一のソケットを介して行うことができますし、行う必要があります。

于 2012-12-16T18:59:51.550 に答える