开发者学堂课程【大数据 ZooKeeper 快速入门:网络编程:socket--基于 UDP 客户端编程】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/549/detail/7580
网络编程:socket--基于 UDP 客户端编程
目录
一、基于 UDP 协议的 Socket 通信的编程与实现
二、打开编译器通过 java 代码怎么实现 UDP 协议的 Socket 通信。
一、基于 UDP 协议的 Socket 通信的编程与实现
在编程之前梳理一下 UDP 协议的最大特点:发送的数据需要打包,包的大小有限制,因此在进行通信的时候把发送的数据进行打包才可以发送出去。
在 java 中 基于 UDP 协议的通信它的核心类叫做 DatagramSocket,在通信的表单都要去创建 DatagramSocket。
二、打开编译器通过 java 代码怎么实现 UDP 协议的 Socket 通信。
1.打开编译器,因为 DatagramSocket 类在 java jdk 中自带的,因此不需要导入任何的架包,直接去 new 一个普通的 java 工程即可。创建一个 Java 的工程选择next,不需要模板直接点 next,工程的名字是 example-socket,点击 finish,这样就创建了一个普通的 Java 工程。里面有一个架包 jdk。
2.怎么基于 UDP 协议的 Socket 通信?
Socket是一个客户端加服务端,一边发送一边接收。
3.发送端的数据怎么写
在 src 里建立一个包,cn.itcast.socket.udp。在里面再创建一个客户端,直接去 new 一个类 UDPSocketClite
在 UDPSocketCliet 中写
(1)先写一个 main 方法
public class UDPSocketCliet{
public static viod main (String[] args){
}
}
(2)接下来梳理基于 UDP 的 Socket 通信,
客户端流程
①创建发送端的 socket 对象,这个对象基于 UDP 核心类是 DatagramSocket。因此创建这个类的实例
②有了对象接下来就基于这个对象发送数据,发送之前要把发送的数据打包,打包完就可以发送数据。
③把资源做一个释放
public class UDPSocketCliet{
public static viod main (String[] args)throws Exception{
//创建发送端的 socket 对象,DatagramSocket
DatagramSocket client = new DatagramSocket();
//来自 java.net 方向,因此不需要导入,创建完之后也不需要参数,这里报了错误,为了方便,在上面直接输入一个 Exception
//把发送的数据打包
String message = "hello udp";
InetAddress address = InetAddress address.getlocalHost();
//直接访问本机,再把对象封装到本地中
Int port = 12321;
//端口号,前提没有用过
Datagrampacket packet = new Datagrampacket(message.getBytes(),message.getBytes().length,address,port);/
/packet 有多个构造对象,选择哪个?第一个是 byte 数组,传送的数组数据是 byte 类型的,然后是数据的长度 length,接下来是参数 inetAddress,可以使用任何构造函数,要能理解。例如使用一个 length、address 加端口号。点击下面的 packet 会发现它是 Datagrampacket,因此要创建一个这样的类
//发送打包好的数据
client.send(packet);
//资源释放
client.close();
}
}