UDP_Service

package demo1;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/*
 *  实现UDP接收端
 *    实现封装数据包 java.net.DatagramPacket 将数据接收
 *    实现输出传输     java.net.DatagramSocket 接收数据包
 *    
 *  实现步骤:
 *     1. 创建DatagramSocket对象,绑定端口号
 *         要和发送端端口号一致
 *     2. 创建字节数组,接收发来的数据
 *     3. 创建数据包对象DatagramPacket
 *     4. 调用DatagramSocket对象方法
 *        receive(DatagramPacket dp)接收数据,数据放在数据包中
 *     5. 拆包
 *          发送的IP地址
 *            数据包对象DatagramPacket方法getAddress()获取的是发送端的IP地址对象
 *            返回值是InetAddress对象
 *          接收到的字节个数
 *            数据包对象DatagramPacket方法 getLength()
 *          发送方的端口号
 *            数据包对象DatagramPacket方法 getPort()发送端口
 *     6. 关闭资源
 */
public class UDP_reseves {
    public static void main(String[] args)throws IOException {
            //创建数据包传输对象DatagramSSocket 绑定端口号
        DatagramSocket ds = new DatagramSocket(6666);
            //创建字节数组,接收发来的数据
        byte[] data = new byte[1024];
        
        while(true){                    //一直接收发送端的数据
            //创建数据包对象,传递字节数组
        DatagramPacket dp = new DatagramPacket(data, data.length);
            //调用ds对象的方法,接收sendto的dp包,receive传递数据包
        ds.receive(dp);
        //拆包:
            //获取发送端的IP地址
        String ip = dp.getAddress().getHostAddress();
            //获取发送端的端口号
        int port = dp.getPort();
        
            //获取接收到的字节个数
        int length = dp.getLength();
        System.out.println(new String(data,0,data.length)+"  .."+ip+":"+port);
        }
    //    ds.close();
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值