android udp代码案例
时间: 2023-12-03 21:45:00 浏览: 154
udp例子代码
以下是一个简单的 Android UDP 通信的示例代码:
```
public class MainActivity extends AppCompatActivity {
private DatagramSocket udpSocket;
private InetAddress serverAddress;
private int serverPort = 12345;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
// 创建 UDP Socket
udpSocket = new DatagramSocket();
// 获取服务器地址
serverAddress = InetAddress.getByName("192.168.0.1");
// 启动接收线程
new ReceiveThread().start();
} catch (IOException e) {
e.printStackTrace();
}
}
public void sendMessage(View view) {
try {
// 构造要发送的数据
String message = "Hello, UDP!";
byte[] data = message.getBytes();
// 创建 UDP 数据包
DatagramPacket packet = new DatagramPacket(data, data.length, serverAddress, serverPort);
// 发送 UDP 数据包
udpSocket.send(packet);
} catch (IOException e) {
e.printStackTrace();
}
}
private class ReceiveThread extends Thread {
@Override
public void run() {
super.run();
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
while (true) {
try {
// 接收 UDP 数据包
udpSocket.receive(packet);
// 处理接收到的数据
String message = new String(packet.getData(), packet.getOffset(), packet.getLength());
Log.d("UDP", "Received message: " + message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
在该代码中,我们创建了一个 `DatagramSocket` 对象 `udpSocket`,并在 `onCreate` 方法中初始化了该对象。我们还创建了一个 `InetAddress` 对象 `serverAddress`,并将其设置为服务器的地址。
我们还创建了一个 `ReceiveThread` 线程,用于接收 UDP 数据包。在该线程中,我们使用 `udpSocket.receive(packet)` 方法来接收 UDP 数据包,并在控制台上输出接收到的数据。
最后,我们在 `sendMessage` 方法中发送了一个简单的消息,使用 `udpSocket.send(packet)` 方法将其发送到服务器。
请注意,该示例代码中仅演示了如何发送和接收 UDP 数据包。在实际应用中,您需要根据您的需求修改代码。
阅读全文