java UDP编程

来源:互联网 发布:星际淘宝网txt下载 编辑:程序博客网 时间:2024/04/30 14:30

         java中进行udp通信时,提供了DatagramSocket这个类。

    要发送数据时,只需要构造一个DatagramPacket,里面填充要发送的数据和发送的目的地和端口号。DatagramPacket有如下构造函数:DatagramPacket(byte[] buf, int offset, int length,InetAddress address, int port);

   接收数据时,也只需要定义一个接收数据包而已,可以用DatagramPacket(byte[] buf, int length)构造函数;

  下面是接收端的代码:

  

import java.io.IOException;import java.net.*;public class UdpReceive { public static void main(String args[])  { try {DatagramSocket s=new DatagramSocket(6002);//定义接收数据的缓冲区和长度byte text[]=new byte[1024];//用来接收数据的数据包DatagramPacket p=new DatagramPacket(text,1024);//接收数据s.receive(p);//显示接收到的数据String a=new String(text,0,p.getLength());System.out.println("接收到"+p.getAddress().getHostName()+"的消息");System.out.print(a);//关闭套接口s.close();} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} }}
发送端的代码

import java.io.IOException;import java.net.*;public class UdpSend {   public static void main(String args[])    {   try {//构造套接字DatagramSocket s=new DatagramSocket();    //构造数据报包//DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) String text="wo shi shizhan";InetAddress ip=InetAddress.getByName("127.0.0.1");DatagramPacket dp=new DatagramPacket(text.getBytes(),0,text.length(),ip,6002);//发送数据包s.send(dp);//关闭套接口s.close();} catch (SocketException e) {e.printStackTrace();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}   }}