質問編集履歴
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
# 複数のマルチキャストを同時に受信する方法
|
2
|
+
|
3
|
+
## 説明
|
4
|
+
|
1
5
|
複数のマルチキャストを同時に受信してファイルに出力するプログラムをPython3.6で作成しています。
|
2
6
|
|
3
7
|
単一のスレッドで受信することはできたのですが、複数のスレッドを同時に実行したとき正常に動作しません。
|
@@ -7,6 +11,8 @@
|
|
7
11
|
|
8
12
|
動作OSはCentOS7.2です。
|
9
13
|
|
14
|
+
## コード
|
15
|
+
|
10
16
|
```python
|
11
17
|
def receive(m_addr, m_port, if_addr):
|
12
18
|
filename = "%s_%d.dat" % (m_addr, m_port)
|
@@ -27,4 +33,14 @@
|
|
27
33
|
# スレッドB起動(target=receive, args=("224.0.0.2", 5000, "192.168.0.1"))
|
28
34
|
|
29
35
|
# スレッド終了待機
|
36
|
+
```
|
37
|
+
|
38
|
+
|
39
|
+
## 追記
|
40
|
+
|
41
|
+
`sock.recvfrom`を使用することで、マルチキャストの送信元IPアドレスを取得することができたため、送信元さえ知っていれば判断することができるようになりました。
|
42
|
+
マルチキャストの送信先は取得できないでしょうか?
|
43
|
+
|
44
|
+
```
|
45
|
+
(buf, addr) = sock.recvfrom(1024)
|
30
46
|
```
|
1
動作環境追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
|
6
6
|
スレッドAのファイルにはマルチキャストA、スレッドBにはマルチキャストBというようにファイルを作成するにはどうすればよいでしょうか。
|
7
7
|
|
8
|
+
動作OSはCentOS7.2です。
|
9
|
+
|
8
10
|
```python
|
9
11
|
def receive(m_addr, m_port, if_addr):
|
10
12
|
filename = "%s_%d.dat" % (m_addr, m_port)
|