public void run(SoleThread st) { try { byte[] buf = new byte[MAX_HEADER_LENGTH + MAX_PACKET_LENGTH]; int len; byte[] tar = null; while (st.isSole()) { DatagramPacket packet = new DatagramPacket(buf, buf.length); // System.out.println("recv..."); recvSocket.receive(packet); len = packet.getLength(); tar = new byte[len]; System.arraycopy(buf, 0, tar, 0, len); // processMsg (tar); quickQueue.put(tar); } } catch (Exception e) { // throw new UDPBaseException ("UDPBase run() error=\n"+e.toString()); System.out.println("Something error in recv thread!"); e.printStackTrace(); } }