码迷,mamicode.com
首页 > 其他好文 > 详细

UDP协议的例子

时间:2017-06-17 10:07:16      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:ice   new   end   数据包   class   nts   接收   service   close   

public class Service { // 服务器
        public static void main(String[] args) {
              DatagramPacket dp = null; //打包 和 拆包数据
              DatagramSocket ds = null; // 接收和 发送数据
             //创建一个包 给客户端响应
              DatagramPacket dpTo=null;
             try {
                 byte [] buf=new byte[1024];
               //创建数据包的对象
                dp=new DatagramPacket(buf, buf.length);
                ds=new DatagramSocket(8800);
             //接收
             ds.receive(dp);
            //显示接收的信息 拆包
               String msg=new String(dp.getData(), 0, dp.getLength());
              //获取 对方的地址 客户端的信息
              System.out.println(dp.getAddress().getHostAddress()+"说====:"+msg);
             //回复给 客户端
              byte[] reply="您好!航母已经发货!".getBytes();
             // dp就是从客户端传来的信封 信封上肯定有 寄件人的地址
              SocketAddress address=dp.getSocketAddress();
             //打包成功
              dpTo=new DatagramPacket(reply, reply.length,address);
           //发送
              ds.send(dpTo);
     } catch (SocketException e) {
        e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
     }
  }
}

基于UDP的客服端代码

技术分享
public class Client {    //客户端
    public static void main(String[] args) {
        DatagramPacket dp = null;  //打包 和 拆包数据 
        DatagramSocket ds = null;  // 接收和 发送数据
        //创建一个包 给服务器响应
        DatagramPacket  dpTo=null;
        InetAddress address=null;
        try {
            //你在网上购物  要不要给客服 说你的地址
            byte[]  say="买个航空母舰!".getBytes();
            //获取本机的地址!
            address = InetAddress.getByName("localhost");
            //打包
            dp=new DatagramPacket(say, say.length,address,8800);
            //发送
            ds=new DatagramSocket();
            ds.send(dp);
            
            //接收
            byte [] buf=new byte[1024];
            dpTo=new DatagramPacket(buf, buf.length);
            ds.receive(dpTo);
            //我们看客服给我们回复了 什么     拆包
            String reply=new String(dpTo.getData(),0,dpTo.getLength());
            System.out.println(dpTo.getAddress().getHostAddress()+"说===》"+reply);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }        
    }

}

UDP协议的例子

标签:ice   new   end   数据包   class   nts   接收   service   close   

原文地址:http://www.cnblogs.com/HHR-SUN/p/7039286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!