Xét 1 ví dụ:
1.Code tạo 1 server udp với port 8000:
package com.mycompany.testmqtts;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPServer {
public static void main(String args[]) throws Exception {
//khởi động udp server với port 8000
DatagramSocket socket = new DatagramSocket(8000);
System.out.println("server is running");
//tạo chuỗi byte
byte[] inServer = new byte[1024];
byte[] outServer = new byte[1024];
//tạo packet nhận dữ liệu
DatagramPacket rcvPkt = new DatagramPacket(inServer, inServer.length);
while (true) {
// chờ nhận dữ liệu từ client
socket.receive(rcvPkt);
System.out.println("Packet Received!");
System.out.println("ip Address!" + rcvPkt.getAddress());
System.out.println("port!" + rcvPkt.getPort());
System.out.println("message Received!" + new String(rcvPkt.getData()));
InetAddress IP = rcvPkt.getAddress();
int port = rcvPkt.getPort();
//lấy dữ liệu nhận và gửi dữ liệu lại cho client
String temp = new String(rcvPkt.getData());
temp = "server :" + temp.toUpperCase();
outServer = temp.getBytes();
//gửi dữ liệu lại cho client
DatagramPacket sndPkt = new DatagramPacket(outServer, outServer.length, IP, port);
socket.send(sndPkt);
}
}
}
2.Code client kết nối UDP server
package com.mycompany.testmqtts;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPClient {
public static void main(String args[]) {
try {
//tạo kết nối udp socket
DatagramSocket socket = new DatagramSocket();
//tạo các chuỗi byte
byte[] inData = new byte[1024];
byte[] outData = new byte[1024];
//ip or hostname của server udp
InetAddress IP = InetAddress.getByName("localhost");
//chuỗi dữ liệu gửi tới udp server
String data = "hello kaka";
outData = data.getBytes();
//gửi dữ liệu tới server udp
DatagramPacket sendPkt = new DatagramPacket(outData, outData.length, IP, 8000);
System.out.println("ready connect server");
socket.send(sendPkt);
socket.setSoTimeout(10000);
System.out.println("connect server success");
//chờ nhận dữ liệu từ udp server gửi về
DatagramPacket recievePkt = new DatagramPacket(inData, inData.length);
System.out.println("ready receive message from server)");
socket.receive(recievePkt);
System.out.println("receive messag");
System.out.println("Replay from Server: " + new String(recievePkt.getData()));
} catch (Exception e) {
System.out.println("error connect udp server");
}
}
}
3.RunUDPServer trước rồi tới UDPClient sẽ thấy kết quả:
Server:
server is running
Packet Received!
ip Address!/127.0.0.1
port!61703
message Received!hello kaka
Client:
ready connect server
connect server success
ready receive message from server)
receive message
Replay from Server: server :HELLO KAKA