基于UDP协议的Socket编程
1.利用DatagramSocket发送数据包
2.利用DatagramPacket对象封装数据包
3.利用DataGramPacket处理数据包
4.利用DataGramPacket接收数据包
建立发送端,接收端
创建数据
建立数据包
调用Socket的发送接收方法
关闭SOcket
发送端与接收端是两个独立运行的程序
import java.io.IOException; import java.net.*; import java.nio.charset.StandardCharsets; public class UDPSend {//发送端 public static void main(String[] args) throws IOException { DatagramSocket ds = new DatagramSocket(); byte[] msg = "最新的邮件来了。。。。".getBytes(StandardCharsets.UTF_8); //创建数据包,即将发送出去的数据包,发送的内容,收获的ip,端口号, DatagramPacket dp = new DatagramPacket(msg, 0, msg.length, InetAddress.getByName("localhost"), 9000); //发送数据 ds.send(dp); //关闭资源:socket ds.close(); } }
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class UDPReceive { public static void main(String[] args) throws IOException {//接收端 //1.创建DatagramSocket DatagramSocket ds = new DatagramSocket(9000); //2.创建Packet byte[] temp = new byte[1024]; DatagramPacket dp = new DatagramPacket(temp, temp.length); //3.接收数据 ds.receive(dp); //发送方的主机名 String hostName = dp.getAddress().getHostName(); //发送方的端口号 int port = dp.getPort(); System.out.println("发送方的主机名是"+hostName+"发送方的端口号是"+port); byte[] bytes = dp.getData();//获取接收到的内容 String msg=new String(bytes,0, dp.getLength()); System.out.println("发送过来的信息是:"+msg); //4.关闭资源 ds.close(); } }
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/275470.html