首页 > 代码库 > java网络编程之UDP讲解
java网络编程之UDP讲解
先上客户端代码
package com.test.net; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UDPClient { /** *UDP客户端 */ public static void main(String[] args) throws Exception { DatagramSocket socket=new DatagramSocket(); String str="hello"; byte[] buf=str.getBytes(); DatagramPacket packet=new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),1111); /*直接发包*/ socket.send(packet); } }
服务器端代码
package com.test.net; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class UDPServer { /** *UDP服务器 */ public static void main(String[] args) throws Exception { DatagramSocket socket=new DatagramSocket(1111); byte[] buf=new byte[256]; DatagramPacket packet=new DatagramPacket(buf,buf.length); /*监听,阻塞*/ socket.receive(packet); String received=new String(packet.getData()); System.out.println(received); } }
首先在这里先讲解一下UDP,UDP协议是无连接协议,简单来说,就是单向发送,不需要事先建立连接,也不需要回包。所以,只需要一个IP和端口,UDP就可以朝着这个端口发包,至于有没有这个IP和端口,或者对方接收不接收,UDP就不管了。所以在UDP中最关键的就是两个类,一个是DatagramSocket,另外一个就是DatagramPacket,第一个类似于套接字,第二个就是UDP包。
在服务器中,DatagramPacket的receive方法会阻塞,相当于监听,一直到监听到数据报为止。
输出结果
结果就是服务器端输出了hello。
java网络编程之UDP讲解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。