質問編集履歴

4

訂正

2021/10/28 08:18

投稿

HYDESA
HYDESA

スコア8

test CHANGED
File without changes
test CHANGED
@@ -86,7 +86,7 @@
86
86
 
87
87
  ### 試したこと
88
88
 
89
- `val socket = DatagramSocket(50000)`とやると
89
+ `val receiveSocket = DatagramSocket(50000)`とやると
90
90
 
91
91
  ポート確認の`socket.port`で -1 の値が表示されてしまうため
92
92
 

3

内容添削

2021/10/28 08:18

投稿

HYDESA
HYDESA

スコア8

test CHANGED
File without changes
test CHANGED
@@ -86,6 +86,12 @@
86
86
 
87
87
  ### 試したこと
88
88
 
89
+ `val socket = DatagramSocket(50000)`とやると
90
+
91
+ ポート確認の`socket.port`で -1 の値が表示されてしまうため
92
+
93
+ あえて`socket.connect`を使用しています。
94
+
89
95
 
90
96
 
91
97
  `Try-catch`でエラーが出ているかどうかを確認しましたが、

2

ソースの変更

2021/10/28 08:17

投稿

HYDESA
HYDESA

スコア8

test CHANGED
File without changes
test CHANGED
@@ -46,28 +46,6 @@
46
46
 
47
47
 
48
48
 
49
- var portNumber = 50000
50
-
51
-
52
-
53
- fun udpReceiveFunction(): String{
54
-
55
- val msg = ByteArray(256)
56
-
57
- val receiveSocket = DatagramSocket(portNumber)
58
-
59
- val packet = DatagramPacket(msg, msg.size)
60
-
61
- receiveSocket.receive(packet)
62
-
63
- receiveSocket.close()
64
-
65
- return String(msg)
66
-
67
- }
68
-
69
-
70
-
71
49
  // 受信表示用TextViewを取得
72
50
 
73
51
  val receiveView = findViewById<TextView>(R.id.textView)
@@ -78,17 +56,23 @@
78
56
 
79
57
  thread {
80
58
 
59
+ val msg = ByteArray(256)
60
+
61
+ val receiveSocket = DatagramSocket()
62
+
63
+ socket.connect(InetAddress.getByName("192.168.0.115"), 50000)
64
+
65
+ val packet = DatagramPacket(msg, msg.size)
66
+
81
67
  Log.d("NetworkStatusExample", "Receive Start") // ログに表示
82
68
 
83
- // 受信待ち
84
-
85
- var msg = udpReceiveFunction()
69
+ receiveSocket.receive(packet)
86
-
87
- // 受信内容表示
88
-
89
- receiveView.text = msg // 内容が表示されない
90
70
 
91
71
  Log.d("NetworkStatusExample", "Receive Stop") // これはログに表示されていない
72
+
73
+ receiveView.text = msg.toString()
74
+
75
+ receiveSocket.close()
92
76
 
93
77
  }
94
78
 
@@ -110,11 +94,27 @@
110
94
 
111
95
 
112
96
 
113
- `thread`を`Global.launch{}`に代えてやってみても症状は同様。
97
+ ### 補足情報(FW/ツールのバージョンなど)
114
98
 
115
99
 
116
100
 
101
+ カスペルスキーが邪魔をしていたので、無効化。
102
+
103
+ FireWallにUDPポート50000の許可を登録。
104
+
105
+
106
+
107
+ 送信側は別PCのPython3で`send`と記述したパケットを送信。
108
+
117
- ### 補足情報(FW/ツールのバージョンなど)
109
+ 受信確認はTCP/IPツールでUDP受信を確認。
110
+
111
+ (併せてWiresharkでも受信を確認済み)
112
+
113
+
114
+
115
+ ![イメージ説明](005f4fd617f089898d2bd47ed989f06e.png)
116
+
117
+
118
118
 
119
119
  Android Studio: 2020.3.1 Patch2
120
120
 
@@ -135,17 +135,3 @@
135
135
 
136
136
 
137
137
  申し訳ありませんが、どなたかご教示くださいませ。
138
-
139
-
140
-
141
-
142
-
143
- -追伸-
144
-
145
- 下記のサイトを参考にしてみましたが、
146
-
147
- `launch(UI)`で赤くなってしまい、うまく処理できませんでした。
148
-
149
-
150
-
151
- [Android でUDP通信をする](https://qiita.com/akakou/items/5a9141c1c98af2fe14e3)

1

説明文追記

2021/10/28 08:13

投稿

HYDESA
HYDESA

スコア8

test CHANGED
File without changes
test CHANGED
@@ -135,3 +135,17 @@
135
135
 
136
136
 
137
137
  申し訳ありませんが、どなたかご教示くださいませ。
138
+
139
+
140
+
141
+
142
+
143
+ -追伸-
144
+
145
+ 下記のサイトを参考にしてみましたが、
146
+
147
+ `launch(UI)`で赤くなってしまい、うまく処理できませんでした。
148
+
149
+
150
+
151
+ [Android でUDP通信をする](https://qiita.com/akakou/items/5a9141c1c98af2fe14e3)