码迷,mamicode.com
首页 > 其他好文 > 详细

UDP传输(一)

时间:2016-05-13 00:58:14      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

UDP传输

DatagramSocket与DatagramPacket

建立发送端,接收端。

建立数据包。

调用Socket的发送接收方法。

关闭Socket。

发送端与接收端是两个独立的运行程序。

 

例子1:UDP发送接收数据

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import java.net.UnknownHostException;

 

/*

 *UDP协议发送数据:

 * A:创建发送端Socket对象

 * B:创建数据,并把数据打包

 * C:调用Socket对象的发送方法发送数据包

 * D:释放资源

 */

public class SendDemo {

 

         publicstatic void main(String[] args) throws IOException {

                   //TODO Auto-generated method stub

 

                   //创建发送端Socket对象

                   //DatagramSocket()

                   DatagramSocketds = new DatagramSocket();

                  

                  

                   //创建数据,并把数据打包

                   //DatagramPacket(byte[]buf,int length,InetAddress address,int port)

                   //创建数据

                   byte[]bys = "hello,udp,我来了".getBytes();

                   //长度

                   intlength = bys.length;

                   //IP地址

                   InetAddressaddress = InetAddress.getByName("219.216.80.19");

                   //端口

                   intport = 10086;

                   DatagramPacketdp = new DatagramPacket(bys,length,address,port);

                  

                   //调用Socket对象发送数据包

                   //publicvoid send (DatagramPacket dp)

                   ds.send(dp);

                  

                   //释放资源

                   ds.close();

         }

 

}

 

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

 

/*

 * UDP协议接受数据:

 * A:创建发送端Socket对象

 * B:创建数据包(接受容器)

 * C:调用Socket对象的接受方法接受数据

 * D:解析数据,并显示在控制台

 * D:释放资源

 */

public classReceiveDemo {

 

   public static void main(String[] args) throws IOException {

      // TODO Auto-generated method stub

 

      //创建接收端Socket对象

      //DatagramSocket(int port)

      DatagramSocketds = new DatagramSocket(10086);

     

      //创建一个数据包(接收数据)

      byte[] bys = new byte[1024];

      int length = bys.length;

      DatagramPacketdp = newDatagramPacket(bys,length);

     

      //调用Socket对象的接收方法接收数据

      ds.receive(dp);

     

      //解析数据包

      InetAddressaddress = dp.getAddress();

      Stringip = address.getHostAddress();

     

      byte[] bys2 =dp.getData();

      int len = dp.getLength();

      Strings = newString(bys,0,len);

      System.out.println(s);

      System.out.println(ip+":"+s);

     

      //释放资源

      ds.close();

   }

 

}

运行结果:

hello,udp,我来了

219.216.80.19:hello,udp,我来了

 

UDP发送接收数据图解:

技术分享

UDP传输(一)

标签:

原文地址:http://blog.csdn.net/wangyanming123/article/details/51347148

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!