Java中UDP的简单使用

来源:互联网 发布:ipad不能用淘宝怎么办 编辑:程序博客网 时间:2024/04/30 18:04

服务端:

/** * Created by cuboo on 2016/10/12. */import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;public class udpserver {    private static DatagramSocket socket;    private DatagramPacket packet;    private static int port = 8001;    public static void main(String[] args) {        udpserver server = new udpserver();        try {            socket = new DatagramSocket(port);            while (true){                DatagramPacket packet = server.receiveMessage(socket);                server.sendMessage(socket,packet);            }        } catch (SocketException e) {            e.printStackTrace();        }    }    public void sendMessage(DatagramSocket socket,DatagramPacket receive_packet){        try {            byte[] datas = "hello this is udpserver echo".getBytes();            //receive_packet接受到的客服端的ip地址和端口            packet = new DatagramPacket(datas,datas.length,receive_packet.getAddress(),receive_packet.getPort());            socket.send(packet);        } catch (UnknownHostException e) {            e.printStackTrace();        } catch (SocketException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    public DatagramPacket receiveMessage(DatagramSocket socket){        try {            byte[] data = new byte[100];            packet = new DatagramPacket(data,data.length);            socket.receive(packet);            System.out.println(new String(packet.getData(),0,packet.getLength()));        } catch (IOException e) {            e.printStackTrace();        }        //返回接受到的客服端的ip地址和端口        return packet;    }}

客户端:

import java.io.IOException;import java.net.*;/** * Created by cuboo on 2016/10/12. */public class udpclient {    private static DatagramSocket socket;    private DatagramPacket packet;    private int port = 8001;    public static void main(String agrs[]){        udpclient client = new udpclient();        try {            socket = new DatagramSocket();            while (true){                client.sendMessage();                client.receivMessage();            }        } catch (SocketException e) {            e.printStackTrace();        }    }    public void sendMessage(){        try {            byte[] datas = "hello this is client echo".getBytes();            packet = new DatagramPacket(datas,datas.length, InetAddress.getLocalHost(),port);            socket.send(packet);        } catch (SocketException e) {            e.printStackTrace();        } catch (UnknownHostException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    public void receivMessage(){        try {            byte[] data = new byte[100];            packet = new DatagramPacket(data,data.length);            socket.receive(packet);            System.out.println(new String(packet.getData(),0,packet.getLength()));        } catch (IOException e) {            e.printStackTrace();        }    }}


0 0
原创粉丝点击