zoukankan      html  css  js  c++  java
  • java.io.IOException: Datagram can not accomodate message of size :xxx

    1. public void run() { 
    2.     byte[] buffer = new byte[16384];  
    3.     DatagramPacket packet = new DatagramPacket(buffer, buffer.length); 
    4.     try {  
    5.         for (;;) {  
    6.               
    7.             // pool正在关闭(shutdown)时不在接收数据  
    8.             if(!pool.isShutdown() && !pool.isTerminated()) {  
    9.                 mcastSocket.receive(packet);  
    10.                 pool.execute(new Handler(packet));  
    11.             } else {  
    12.                 LOG.info("JxtaMulticastSocketService is now shutdown.");  
    13.             }  
    14.                   
    15.         }  
    16.     } catch (IOException ex) {  
    17.         ex.printStackTrace();  
    18.         pool.shutdown();  
    19.     }  

    ------------------------------------------------------------------------------------

    注意第一行和第二行,每次for循环,都使用同一个buffer,这样当接收数据时,会抛出异常。可以将buffer的声明放在for循环的里面。
  • 相关阅读:
    [华为]字符串反转
    [华为]字符个数统计
    [华为]字符串分隔
    [华为]计算字符个数
    [华为]字符串最后一个单词的长度
    感悟-思考-生活
    [百度校招]打印全排列
    [阿里]逆序打印整数,要求递归实现
    [百度]数组中去掉连续重复的数字,只保留1个
    百度NLP三面
  • 原文地址:https://www.cnblogs.com/cuizhf/p/2174438.html
Copyright © 2011-2022 走看看