一个简单的Java UDP协议通信的例子

xiaoxiao2024-04-20  22

一个简单的Java UDP协议通信的例子server:

import java.net.*;public class UDPServer {    private static final int PORT = 5000;    private DatagramSocket dataSocket;    private DatagramPacket dataPacket;    private byte receiveByte[];    private String receiveStr;    public UDPServer() {        Init();    }    public void Init() {        try {            dataSocket = new DatagramSocket(PORT);            receiveByte = new byte[1024];            dataPacket = new DatagramPacket(receiveByte, receiveByte.length);            receiveStr = "";            int i = 0;            while (i == 0)// 无数据,则循环            {                dataSocket.receive(dataPacket);                i = dataPacket.getLength();                // 接收数据                if (i > 0) {                    // 指定接收到数据的长度,可使接收数据正常显示,开始时很容易忽略这一点                    receiveStr = new String(receiveByte, 0, dataPacket.getLength());                    System.out.println(receiveStr);                    i = 0;// 循环接收                }            }        } catch (Exception e) {            e.printStackTrace();        }    }    public static void main(String args[]) {        new UDPServer();    }}

client:

import java.io.*;import java.net.*;public class UDPClient {    private static final int PORT = 4561;    private DatagramSocket dataSocket;    private DatagramPacket dataPacket;    private byte sendDataByte[];    private String sendStr;    public UDPClient() {        Init();    }    public void Init() {        try {            // 指定端口号,避免与其他应用程序发生冲突            dataSocket = new DatagramSocket(PORT+1);            sendDataByte = new byte[1024];            sendStr = "UDP方式发送数据";            sendDataByte = sendStr.getBytes();            dataPacket = new DatagramPacket(sendDataByte, sendDataByte.length,                    InetAddress.getByName("localhost"), PORT);            dataSocket.send(dataPacket);        } catch (SocketException se) {            se.printStackTrace();        } catch (IOException ie) {            ie.printStackTrace();        }    }    public static void main(String args[]) {        new UDPClient();    }}

转载请注明原文地址: https://www.6miu.com/read-5015107.html

最新回复(0)