Java udp 示例
·
一、shell模拟client
printf "Hello my first udp \n" | nc -u -w 1 172.20.10.14 8888
二、java server
package com.mms.densenapplication;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UdpServer extends AppCompatActivity {
private static final String TAG = "UDPServer";
private static final int PORT = 8888;
private DatagramSocket socket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startUdpServer();
}
public void startUdpServer() {
new Thread(() -> {
try {
socket = new DatagramSocket(PORT);
Log.d(TAG, "======================================");
Log.d(TAG, "UDP Server started on port " + PORT);
byte[] buffer = new byte[1024];
while (true) {
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet); // 阻塞接收
String message = new String(packet.getData(), 0, packet.getLength());
Log.d(TAG, "Received from " + packet.getAddress().getHostAddress() + ":" + packet.getPort() + " -> " + message);
}
} catch (Exception e) {
Log.e(TAG, "UDP Server error", e);
} finally {
if (socket != null && !socket.isClosed()) {
socket.close();
}
}
}).start();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (socket != null && !socket.isClosed()) {
socket.close();
}
}
}
更多推荐


所有评论(0)