UDP网络编程

该博客展示了使用Java实现UDP(用户数据报协议)的发送和接收数据的示例代码。在发送端,创建DatagramSocket在9998端口监听,并将消息发送到目标IP的9999端口。接收端同样使用DatagramSocket在9999端口接收数据,接收到消息后回复'明天见'。
摘要由CSDN通过智能技术生成

发送端

package com.zqf.Socket_.udp_;

import java.io.IOException;
import java.net.*;

public class sender {
    public static void main(String[] args) throws IOException {
        //1.创建一个DatagramSocket对象 准备在发送和接收数据 准备在9998接收数据 有接受的功能
        //所以端口不要一样
        DatagramSocket socket = new DatagramSocket(9998);
        //2.将需要发送的数据封装到DatagramPackage
        byte[] data = "hello 明天吃火锅".getBytes();

        //封装的Datagrampackeg对象 data内容字节数组 data.length,主机(IP),端口
        DatagramPacket packet =
                new DatagramPacket(data, data.length, InetAddress.getByName("192.168.0.1"), 9999);
        socket.send(packet);

        //(1)接收信息
        byte[] buf=new byte[64*1024];
        packet = new DatagramPacket(buf, buf.length);
        //(2)
        socket.receive(packet);
        //4.可以把packet进行拆包 取数据并显示
        //(3)
        int length = packet.getLength();//实际的接收到的数据
        data = packet.getData();
        String s = new String(data, 0, length);
        System.out.println(s);
        
        socket.close();
        System.out.println("发送端退出");
    }
}

接收端

package com.zqf.Socket_.udp_;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class receiver {
    public static void main(String[] args) throws IOException {
        //1.创建一个DatagramSocket对象 准备在9999接收数据
        DatagramSocket Socket = new DatagramSocket(9999);
        //2.构建一个DatagramSocket对象,准备接收数据
        byte[] buf=new byte[64*1024];
        DatagramPacket Packet = new DatagramPacket(buf, buf.length);
        //3.调用接受方法 将通过网络传输DatagramPacket
        //当有数据包发送到本机的9999端口 就会接收到数据
        //没有数据发送的话 就等待
        System.out.println("接收端等待接收数据");
        Socket.receive(Packet);
        //4.可以把packet进行拆包 取数据并显示
        int length = Packet.getLength();//实际的接收到的数据
        byte[] data = Packet.getData();

        String s = new String(data, 0, length);
        System.out.println(s);

        //回复信息
        data = "明天见".getBytes();
        //封装的Datagrampackeg对象 data内容字节数组 data.length,主机(IP),端口
        DatagramPacket datagramPacket =
                new DatagramPacket(data, data.length, InetAddress.getByName("192.168.0.1"), 9998);
        Socket.send(datagramPacket);
        //关闭资源
        Socket.close();
    }
}

TCP网络编程
https://blog.csdn.net/zhang__1234/article/details/122886869?spm=1001.2014.3001.5501

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值