网路编程-UDP-DatagramSocket、DatagramPacket

UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当

  

UDP

它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

 

 

一个互相发送、接受的 简单程序:

(部分代码:具体请下载下面文件)

--------------发送程序部分代码------------

while (true) {
   String str = getInputStr();
   try {

    DatagramSocket ds = new DatagramSocket();
    DatagramPacket dp = new DatagramPacket(str.getBytes(), 0, str
      .getBytes().length, InetAddress
      .getByName("192.168.1.199"), 6000);
    ds.send(dp);

    ds.close();

   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   if ("quit".equals(str)) {
    System.out.println("本第一端发送退出。。。");
    break;
   }

  }

 

 

----接受程序部分代码-----------

while (true) {
    try {
     DatagramSocket ds = new DatagramSocket(3000);

     byte[] b = new byte[1024];
     DatagramPacket dp = new DatagramPacket(b, 1024);
     ds.receive(dp);
     String s = new String(dp.getData(), 0, dp.getLength());
     if ("quit".equals(s)) {
      System.out.println("第二端发送已退出..。");
      System.out.println("本第一端接收程序退出..");
      break;
     }
     String rece = s + "    From Receive --"
       + dp.getAddress().getHostAddress() + " : "
       + dp.getPort();
     System.out.println(rece);
     ds.close();
    } catch (Exception e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }

 

 

 

 

由于每个端都具有发送接受功能   所以要采用到线程。详细见下载资料中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值