zoukankan      html  css  js  c++  java
  • (2)使用UDP协议编写简单发送方和接收方Demo

    (2)使用UDP协议编写简单发送方和接收方Demo

    此demo的作用为不停止的话会一直不停的接收和发送

    一.编写UDP协议接收方,循环接受,输入886退出

     1   package demo.soket.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   /**
    11    * UDP协议发送方
    12    * UDP协议特点:
    13    * 1.数据打包
    14    * 2.不需要建立连接
    15    * 3.不可靠协议,接不接收都不会报错
    16    * 4.速度快
    17    * 5.数据包限制在64k
    18    */
    19   public class sendUdp {
    20       public static void main(String[] args) {
    21           /**
    22            *  DatagramSocket:用于UDP协议的socket
    23            *  
    24            *  1.创建对象,UDP协议
    25            *  2.把想要发送的的数据打包(并且不超过64k)
    26            *  3.数据发送 
    27            *  send(DatagramPacket p) 
    28            *  4.关闭连接
    29            */
    30           DatagramSocket ds=null;
    31           try {
    32               //1.创建对象 ,UDP协议
    33               ds=new DatagramSocket();
    34               /**
    35                * 2.把想要发送的的数据打包(并且不超过64k)
    36                * 构造用于发送长度的分组的数据报包 length指定主机上到指定的端口号。 
    37                */
    38               byte[] buf="UDP协议的demo测试数据".getBytes();
    39               InetAddress address=InetAddress.getByName("192.168.95.2");
    40               //指向接收方的ip和端口
    41               DatagramPacket p=new DatagramPacket(buf, buf.length, address, 10086);
    42               //3.数据发送 
    43               ds.send(p);
    44           } catch (SocketException e) {
    45               e.printStackTrace();
    46           } catch (UnknownHostException e) {
    47               e.printStackTrace();
    48           } catch (IOException e) {
    49               e.printStackTrace();
    50           }finally {
    51               //4.关闭连接
    52               if(ds!=null) {
    53                   ds.close();
    54               }
    55           }   
    56       }
    57   }
    58

    二.编写UDP协议服务端,循环接收

     1 package demo.soket.udp;
     2  3   import java.io.IOException;
     4   import java.net.DatagramPacket;
     5   import java.net.DatagramSocket;
     6   import java.net.SocketException;
     7   import java.net.UnknownHostException;
     8  9   //UDP协议接收方
    10   public class receiveUdp {
    11       public static void main(String[] args) {
    12           /**
    13            *  1.创建接收方对象:new DatagramSocket(10000);需指定接收的端口
    14            *  2.创建一个数据包
    15            *  3.从DatagramPacket包中接收数据
    16            *  receive(DatagramPacket p) 从此套接字接收数据报包。 
    17            */
    18           DatagramSocket ds=null;
    19           try {
    20               //1.创建接收方对象,指定那个端口接收数据
    21               ds=new DatagramSocket(10000);
    22               while(true) {
    23                   //2.创建一个数据包,指定数据
    24                   byte[] buf=new byte[1024];
    25                   DatagramPacket dp=new DatagramPacket(buf, buf.length);
    26                   //3.接收数据,阻塞方法
    27                   ds.receive(dp);
    28                   //实际dp不一定有1024个字节
    29                   byte[] b=dp.getData();
    30                   //有多少取多少,获取b中的内容,从0下标处开始,直到dp.getLength()结束
    31                   String str=new String(b, 0,dp.getLength());
    32                   System.out.println("接收到的数据:"+str);
    33               }
    34           } catch (SocketException e) {
    35               e.printStackTrace();
    36           } catch (UnknownHostException e) {
    37               e.printStackTrace();
    38           } catch (IOException e) {
    39               e.printStackTrace();
    40           }
    41       }
    42   }
    43

    三 .demo运行

     

  • 相关阅读:
    五星评价
    IE9以上 CSS文件因Mime类型不匹配而被忽略 其他浏览器及IE8以下显示正常
    js时间显示设置
    jq手风琴---点击时列表的左边距逐渐减小
    break continue return
    validate插件:验证密码没有空格 用户名是5-10位 至少包含数字和大小写字母中的两种字符
    Commons IO
    Servlet & JSP
    设计模式
    Table of Contents
  • 原文地址:https://www.cnblogs.com/KdeS/p/13266016.html
Copyright © 2011-2022 走看看