Java Socket编程之UDP编程
更多资料请看:https://www.yuque.com/shizhiy...
Java Socket编程之UDP编程
UDP协议(用户数据报协议)是无连接的、不可靠的、无序的,速度快
进行数据传输时,首先将要传输的数据定义成数据报(Datagram),大小限制在64k,在数据报中指明数据索要达到的Socket(主机地址和端口号),然后再将数据报发送出去;
**
DatagramPacket类:表示数据报包
DatagramSocket类:进行端到端通信的类
服务器端实现步骤
- 创建DatagramSocket,指定端口号
- 创建DatagramPacket
- 接受客户端发送的数据信息
- 读取数据
//服务器端,实现基于UDP的用户登录 //1、创建服务器端DatagramSocket,指定端口 DatagramSocket socket =new datagramSocket(10010); //2、创建数据报,用于接受客户端发送的数据 byte[] data =newbyte[1024];// DatagramPacket packet =newDatagramPacket(data,data.length); //3、接受客户端发送的数据 socket.receive(packet);//此方法在接受数据报之前会一致阻塞 //4、读取数据 String info =newString(data,o,data.length); System.out.println("我是服务器,客户端告诉我"+info); //========================================================= //向客户端响应数据 //1、定义客户端的地址、端口号、数据 InetAddress address = packet.getAddress(); int port = packet.getPort(); byte[] data2 = "欢迎您!".geyBytes(); //2、创建数据报,包含响应的数据信息 DatagramPacket packet2 = new DatagramPacket(data2,data2.length,address,port); //3、响应客户端 socket.send(packet2); //4、关闭资源 socket.close();
客户端实现步骤
- 定义发送信息
- 创建DatagramPacket,包含将要发送的信息
- 创建DatagramSocket
- 发送数据
//客户端 //1、定义服务器的地址、端口号、数据 InetAddress address =InetAddress.getByName("localhost"); int port =10010; byte[] data ="用户名:admin;密码:123".getBytes(); //2、创建数据报,包含发送的数据信息 DatagramPacket packet = newDatagramPacket(data,data,length,address,port); //3、创建DatagramSocket对象 DatagramSocket socket =newDatagramSocket(); //4、向服务器发送数据 socket.send(packet); //接受服务器端响应数据 //====================================== //1、创建数据报,用于接受服务器端响应数据 byte[] data2 = new byte[1024]; DatagramPacket packet2 = new DatagramPacket(data2,data2.length); //2、接受服务器响应的数据 socket.receive(packet2); String raply = new String(data2,0,packet2.getLenth()); System.out.println("我是客户端,服务器说:"+reply); //4、关闭资源 socket.close();
相关推荐
安得情怀似旧时 2020-03-04
一叶梧桐 2020-10-14
lzzyok 2020-10-10
digwtx 2020-09-14
efeve 2020-09-14
poplpsure 2020-08-17
ITxiaobaibai 2020-07-26
libowenhit 2020-07-23
luckykapok 2020-07-06
hongsheyoumo 2020-06-27
jannal 2020-06-21
lanmantech 2020-06-16
咻咻ing 2020-06-16
weibingbingnet 2020-06-14
woyanyouxin 2020-06-04
houjinkai 2020-06-03
txj 2020-06-02