java.io.IOException: Datagram can not accomodate message of size :xxx

mac2022-06-30  20

public void run() {      byte[] buffer = new byte[16384];      DatagramPacket packet = new DatagramPacket(buffer, buffer.length);      try {          for (;;) {                            // pool正在关闭(shutdown)时不在接收数据              if(!pool.isShutdown() && !pool.isTerminated()) {                  mcastSocket.receive(packet);                  pool.execute(new Handler(packet));              } else {                  LOG.info("JxtaMulticastSocketService is now shutdown.");              }                            }      } catch (IOException ex) {          ex.printStackTrace();          pool.shutdown();      }  } 

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

 

注意第一行和第二行,每次for循环,都使用同一个buffer,这样当接收数据时,会抛出异常。可以将buffer的声明放在for循环的里面。

 

转载于:https://www.cnblogs.com/cuizhf/archive/2011/09/13/2174438.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)