UdpHelper.java
2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package com.qnbar.switchcontrol;
import android.util.Log;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
/**
* UdpHelper帮助类
*
*/
public class UdpHelper{
public Boolean IsThreadDisable = false;//指示监听线程是否终止
InetAddress mInetAddress;
public void StartListen() {
// UDP服务器监听的端口
Integer port = 9000;
// 接收的字节大小,客户端发送的数据不能超过这个大小
byte[] message = new byte[4096];
try {
// 建立Socket连接
DatagramSocket datagramSocket = new DatagramSocket(port);
datagramSocket.setBroadcast(true);
try {
while (!IsThreadDisable) {
// 准备接收数据
Log.d("UDP_Demo", "准备接受");
DatagramPacket datagramPacket = new DatagramPacket(message,
message.length);
datagramSocket.receive(datagramPacket);
String strMsg=new String(datagramPacket.getData()).trim();
Log.d("UDP_Demo", datagramPacket.getAddress().getHostAddress()
+ ":" +strMsg );
}
} catch (IOException e) {//IOException
e.printStackTrace();
}
} catch (SocketException e) {
e.printStackTrace();
}
}
/* public static void send(String message) {
message = (message == null ? “Hello IdeasAndroid!” : message);
int server_port = 8904;
Log.d(“UDP Demo”, “UDP发送数据:”+message);
DatagramSocket s = null;
try {
s = new DatagramSocket();
} catch (SocketException e) {
e.printStackTrace();
}
InetAddress local = null;
try {
local = InetAddress.getByName(“255.255.255.255”);
} catch (UnknownHostException e) {
e.printStackTrace();
}
int msg_length = message.length();
byte[] messageByte = message.getBytes();
DatagramPacket p = new DatagramPacket(messageByte, msg_length, local,
server_port);
try {
s.send(p);
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}*/
}