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

黑马程序员UDP入门

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

黑马程序员UDP入门

标题UDP协议特点

∙ bullet ∙ UDP是一种无连接、不可靠传输的协议。
∙ bullet ∙ 将数据源IP,目的地IP和端口以及数据封装成数据包,大小限制在64KB内,直接发送出去即可。
DatagramPacket:数据包对象

构造器说明
public DatagramPacket(byet[] buf,int length, InetAddress address,int port)创建发送端数据包对象 buf:要发送的内容,字节数组。length:要发送内容的字节长度。address:接收端的IP地址对象。port:接收端端口号
public DatagramPacket(byet[] buf,int length)创建接收端的数据包对象 buf:用来存储接受的内容。 length:能接收内容的长度。

DatagramSocket:发送端和接收端对象

构造器说明
public DatagramSocket()创建发送端的socket对象,系统随机分配一个端口号。
public DatagramSocket(int port)创建接收端的Socket对象并指定端口号

DatagramSocket类成员方法

方法说明
public void send(DatagramPacket dp)发送数据包
public void receive(DatagramPacket p)接收数据包
UDP 一发 一收

接收端代码

package com.lp.d2_udp1;

import java.net.DatagramPacket;
import java.net.DatagramSocket;


public class ServerDemo2 {
    public static void main(String[] args) throws Exception {
        System.out.println("=======服务端启动=======");
//        1、创建接收端的数据包对象:注册端口
        DatagramSocket socket=new DatagramSocket(8888);
//        2、创建一个数据包对象接受数据
        byte[] buffer=new byte[1024*64];
        DatagramPacket packet=new DatagramPacket(buffer, buffer.length);
//        3、等待接收数据
        socket.receive(packet);
//        4、取出数据即可
        int length=packet.getLength();
        String rs=new String(buffer,0,length);
        System.out.println("收到了:"+rs);
        String ip=packet.getSocketAddress().toString();
        System.out.println(ip);
        socket.close();
    }
}

发出端代码

package com.lp.d2_udp1;

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


public class ClientDemo1 {
    public static void main(String[] args) throws Exception {
        System.out.println("=======客户端启动========");
//        1、创建发送端对象:发送端自带默认端口
        DatagramSocket socket=new DatagramSocket();
//        2、创建一个数据包对象封装数据
        byte[] buffer="诸天气荡荡,我道日兴隆".getBytes();
        DatagramPacket packet=new DatagramPacket(buffer, buffer.length, InetAddress.getLocalHost(),8888);
//        3、发送数据出去
        socket.send(packet);
        socket.close();
    }

}
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017498.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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