回答編集履歴
1
追記
answer
CHANGED
@@ -3,4 +3,20 @@
|
|
3
3
|
日本語が間違っていて、クライアントを作るのであれば、
|
4
4
|
どちらのポートで待ち受けているか分からないサーバーにクライアントとして接続しに行くので有れば、その方法しか無いので、スレッドを分けてそれぞれで接続に行くくらいでしょうか。
|
5
5
|
|
6
|
-
それとも日本語が正しい場合は、`connect`じゃなくて`bind`と`listen`で同時に2つのポートで待ち受けられます。
|
6
|
+
それとも日本語が正しい場合は、`connect`じゃなくて`bind`と`listen`で同時に2つのポートで待ち受けられます。
|
7
|
+
|
8
|
+
#追記
|
9
|
+
クライアントから、サーバーにあらかじめTCPコネクションを2つ張っておいて、
|
10
|
+
両方のコネクションを同時に受信チェックしたいということのようですね。
|
11
|
+
|
12
|
+
`select`を使って入力のあるソケットを教えてもらうのが簡単です。
|
13
|
+
|
14
|
+
```Python
|
15
|
+
import select
|
16
|
+
|
17
|
+
socks = select.select([socket1,socket2],[],[])[0]:
|
18
|
+
for sock in socks:
|
19
|
+
data = sock.recv(1024)
|
20
|
+
print(f"ポート {sock.getsockname()[1]} から返ってきた")
|
21
|
+
```
|
22
|
+
必要に応じて、第4引数でタイムアウト値を指定して下さい。タイムアウト時は`socks`が空リストになります。
|