A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangning9130 中级黑马   /  2013-11-28 13:36  /  787 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们知道在通过DatagramSocket 发送数据时。需要先通过Datagrampacket封包。 然后再send发送、
可是之前说了  一个包只有64k   如果超过64k的解决办法是什么呢?
还有实现原理请大神说一下啊!!

评分

参与人数 1技术分 +1 黑马币 +5 收起 理由
枫儿 + 1 + 5

查看全部评分

2 个回复

正序浏览
一个包确实是最大64K,可是谁说只能发送数据时只能发送一个包了啊...
给你看这段小程序:
  1. class send
  2. {
  3.         public static void main(String[] args) throws Exception
  4.         {
  5.                 DatagramSocket ds = new DatagramSocket();
  6.                 //定义读取流读取文件,假设这个文件是200KB的文本文件
  7.                 BufferedReader bfr = new BufferedReader(new FileReader("aa.txt"));
  8.                 String line = null;
  9.                 while ((line=bfr.readLine())!=null)
  10.                 {
  11.                         byte[] buf = line.getBytes();
  12.                         //将数据封包发送
  13.                         DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.255"),10001);
  14.                         ds.send(dp);

  15.                 }
  16.                 ds.close();
  17.         }
  18. }
复制代码

这样就发送出去了啊,不知道有木有解决哥们的困惑

评分

参与人数 1技术分 +1 黑马币 +5 收起 理由
枫儿 + 1 + 5 赞一个!

查看全部评分

回复 使用道具 举报
try catch一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马