栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

UDP网络编程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UDP网络编程

发送端

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/737016.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号