大家都知道java中的socket网络编程,而其采用的协议分别有tcp和udp协议两种.
通常的理解tcp协议类似于打电话,udp类似于发短信.前者是线程安全的,但是效率比较低.后者则刚好相反.
今天就做个demo来了解一下udp网络编程.
首先是客户端:
package javasocket.demo; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; /** * 1.创建客户端 * 2.准备数据 * 3.打包数据 * 4.发送数据 * 5.关闭 * @author Administrator * */ public class UdpSocketClientDemo { public static void main(String[] args) throws Exception { //客服端 DatagramSocket client=new DatagramSocket(8000); String msg="UDP"; byte[] data =msg.getBytes(); DatagramPacket dp=new DatagramPacket(data, data.length,new InetSocketAddress("localhost",8888)); client.send(dp); client.close(); } }
服务器:
package javasocket.demo; import java.net.DatagramPacket; import java.net.DatagramSocket; /** * 服务端 * 1.创建服务端和接口 * 2.准备接受容器 * 3.封装成包 * 4.接受数据 * 5.分析数据 * 6.关闭 * @author bgt * */ public class UdpSocketServerDemo { public static void main(String[] args) throws Exception { //服务端 DatagramSocket server=new DatagramSocket(8888); byte[] container=new byte[1024]; DatagramPacket dp=new DatagramPacket(container, container.length); server.receive(dp); byte[] data=dp.getData(); int len=dp.getLength(); System.out.println(new String(data,0,len)); server.close(); } }