• UDP 端到端


     创建发送端

    1.建立DatagramSocket对象,该端点建立,系统会随机分配一个端口,如果不想随机分配,可手动指定。

    2.将数据进行packet封装,必须指定目的地址和端口。

    3.通过socket服务的send方法将该包发出。

    4,。将socket关闭。

     1 package UDP;
     2 
     3 import java.io.IOException;
     4 import java.net.DatagramPacket;
     5 import java.net.DatagramSocket;
     6 import java.net.InetAddress;
     7 import java.net.SocketException;
     8 import java.net.UnknownHostException;
     9 
    10 public class Demo1 {
    11 
    12     public static void main(String[] args) throws IOException {
    13         
    14         DatagramSocket socket = new DatagramSocket();
    15     
    16         String str = "hello";
    17         // 打包封装
    18         DatagramPacket packet = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getByName("localhost"),
    19                 8000);
    20         socket.send(packet);// 发送
    21 
    22         // 接收
    23 
    24         byte[] buff = new byte[100];
    25         DatagramPacket packet2 = new DatagramPacket(buff, 100);
    26         socket.receive(packet2);
    27         System.out.println(new String(buff, 0, packet2.getLength()));
    28         socket.close();
    29     }
    30 
    31 }

     创建接收端

    1.建立DatagramSocket对象,要监听一个端口。

    2.通过socket的recevie方法将数据存入数据包中。

    3.通过数据包的方法getData()、getAddress()、getPort()、等方法获取包中的指定信息。

    4.将socket关闭

     1 package UDP;
     2 
     3 import java.io.IOException;
     4 import java.net.DatagramPacket;
     5 import java.net.DatagramSocket;
     6 import java.net.InetAddress;
     7 import java.net.SocketException;
     8 
     9 public class Demo2 {
    10 
    11     public static void main(String[] args) throws IOException {
    12         //接收
    13         DatagramSocket socket = new DatagramSocket(8000);
    14         byte[] buff = new byte[100];
    15         DatagramPacket packet = new DatagramPacket(buff, 100);
    16         socket.receive(packet);
    17         System.out.println(new String (buff,0,packet.getLength()));
    18 
    19         //发送
    20         String str = "me too";
    21         DatagramPacket packet2 = new DatagramPacket(str.getBytes(), str.length(), packet.getAddress(),
    22                 packet.getPort());
    23         socket.send(packet2);
    24         socket.close();
    25 
    26     }
    27 
    28 }
  • 相关阅读:
    sp_executesql介绍和使用
    jQuery中的 return false, e.preventDefault(), e.stopPropagation()的区别
    clearfix:after 清除css浮动
    paip.mysql 性能跟iops的以及硬盘缓存的关系
    paip.mysql 性能测试 报告 home right
    paip.mysql 性能测试by mysqlslap
    paip.java 架构师之路以及java高级技术
    paip. 提升性能---hibernate的缓存使用 总结
    paip. 解决php 以及 python 连接access无效的参数量。参数不足,期待是 1”的错误
    paip.解决access出现 -2147467259 无效的参数量
  • 原文地址:https://www.cnblogs.com/the-wang/p/7112272.html
Copyright © 2020-2023  润新知