UDP server và UDP client trong java

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