UDP发送和接收数据

发送程序:

packagecom.kvt.udp;
importjava.io.IOException;
importjava.net.DatagramPacket;
importjava.net.DatagramSocket;
importjava.net.InetAddress;
importjava.net.SocketException;
importjava.net.UnknownHostException;
/**
 * UDP发送消息测试:UDP接收端启动之后会一直阻塞,只有接收到信息后才关闭。
 * 如果网络无数据发送过来,也不出现阻塞,说明端口被占用。
 * 运行时先启动接收程序。
 */
publicclassUdpSend {
    publicstaticvoidmain(String[] args) throwsSocketException, UnknownHostException {
        DatagramSocket ds=newDatagramSocket();
        String str="china";
        DatagramPacket dp=newDatagramPacket(str.getBytes(), str.length(),InetAddress.getByName("192.168.20.48"), 8000);
        try{
            ds.send(dp);
        } catch(IOException e) {
            e.printStackTrace();
        }finally{
            ds.close();
        }
         
    }
 
}
接收程序:
packagecom.kvt.udp;
importjava.io.IOException;
importjava.net.DatagramPacket;
importjava.net.DatagramSocket;
importjava.net.SocketException;
importjava.net.UnknownHostException;
/**
 * UDP接收消息测试:UDP接收端启动之后会一直阻塞,只有接收到信息后才关闭。
 * 如果网络无数据发送过来,也不出现阻塞,说明端口被占用。
 * 运行时先启动接收程序。
 */
publicclassUdpReceive {
    publicstaticvoidmain(String[] args) throwsSocketException, UnknownHostException {
        DatagramSocket ds=newDatagramSocket(8000);
        byte[] byt=newbyte[1024];
        DatagramPacket dp=newDatagramPacket(byt,byt.length);
        try{
            ds.receive(dp);
            String str=newString(dp.getData(),0,dp.getLength());
            System.out.println(str);
            System.out.println("IP:"+dp.getAddress().getHostAddress()+" Port:"+dp.getPort());
        } catch(IOException e) {
            e.printStackTrace();
        }finally{
            ds.close();
        }
         
         
    }
 
}




你可能感兴趣的:(UDP发送和接收数据)