質問するログイン新規登録

質問編集履歴

2

追記

2018/07/26 13:20

投稿

y.nakamura
y.nakamura

スコア190

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

動作環境追加

2018/07/26 13:20

投稿

y.nakamura
y.nakamura

スコア190

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)