转自 http://blog.csdn.net/zjqlovelyy/article/details/8544774
- /*
- 通过UDP传输方式,将一段文字数据发送出去
- 1.建立udpsocket服务
- 2.提供数据,并将数据封装到数据包中。
- 3.通过socket服务的发送功能。将数据包发出去
- 4.关闭资源
- 类:
- DatagramPacket 封装数据包
- DatagramSocket 创建UDP服务
- */
- import java.net.*;
- class UdpSend
- {
- public static void main(String[] args)throws Exception
- {
- DatagramSocket ds = new DatagramSocket();
- byte[] buf = "UDP Demo".getBytes();
- DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10000);//10000为定义的端口
- ds.send(dp);
- ds.close();
- }
- }
- /*
- 定义一个应用程序,用于接受udp协议传输的数据并处理
- 1.定义udpsocket服务
- 2.定义一个数据包类,用于存放接受到的数据包(字节数据)。并使用该类处理数据
- 3.通过socket服务的receive方法接受的数据出入已定义的数据包类中
- 4.使用数据包类功能处理数据
- 5.关闭资源
- */
- class UdpReceive
- {
- public static void main(String[] args)throws Exception
- {
- //创建UDP socket,建立端点
- DatagramSocket ds = new DatagramSocket(10000); //监听10000端口
- //定义数据包,用于存储数据
- byte[] buf = new byte[1024];
- DatagramPacket dp = new DatagramPacket(buf,buf.length);
- ds.receive(dp);
- String ip = dp.getAddress().getHostAddress(); //数据提取
- String data = new String(dp.getData(),0,dp.getLength());
- int port = dp.getPort();
- System.out.println(data+"."+port+".."+ip);
- ds.close();
- }
- }