Java网络通信编程-UDP
Posted 完美世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java网络通信编程-UDP相关的知识,希望对你有一定的参考价值。
1.对于TCP和UDP主要是两种不同的协议,前者是“面向连接”,“安全”,后者是“面向无连接”,“速度快”,“不安全”。
2.端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口。
3.使用UDP主要涉及的对象有DatagramSocket,DatagramPacket,InetAddress。下面是UDP案例,代码如下:
client端:
package com.net; import java.io.IOException; import java.net.*; /** UDP通信-client * Created by lichangyun on 2020/7/17. */ public class UdpClient { public static void main(String[] args) throws SocketException, UnknownHostException { // 创建DatagramSocket DatagramSocket ds=new DatagramSocket(); // 创建DatagramPacket,打包 String msg="我爱编程!"; byte[] bytes = msg.getBytes(); InetAddress address = InetAddress.getByName("127.0.0.1"); int port=1000; DatagramPacket dp = new DatagramPacket(bytes, bytes.length, address, port); try { // 建立联系 ds.send(dp); } catch (IOException e) { e.printStackTrace(); }finally { ds.close(); } } }
server端:
package com.net; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; /**UDP-server * Created by lichangyun on 2020/7/20. */ public class UdpServer { public static void main(String[] args) throws IOException { // 创建服务端对象 DatagramSocket ds= new DatagramSocket(1000); // 创建包 byte[] bytes = new byte[1024]; DatagramPacket dp = new DatagramPacket(bytes, bytes.length); // 接受客户端的数据 ds.receive(dp); // 打印到控制台 System.out.println("接受到的数据: "+new String(bytes,0,bytes.length)); // 释放资源 ds.close(); } }
以上是关于Java网络通信编程-UDP的主要内容,如果未能解决你的问题,请参考以下文章
java 25 - 4 网络编程之 UDP协议传输的代码优化