/** * 发送包,该方法是同步的 * * @param pack 可能是submit报或者unbind包 包 * @return 如果通道不可用 返回false 发送成功返回true * @throws IOException * @throws IOException */ private boolean sendPacket(APackage pack) throws IOException { log.info("发送SubmitMessage包:" + pack); APackage recv = channel.send(pack); log.info("收到SubmitRespMessage包:" + recv); if (recv == null) { return false; } // 对收到的包记录二进制信息 if ((pack instanceof SubmitMessage) && (recv instanceof SubmitRespMessage)) { doSubmitResp((SubmitMessage) pack, (SubmitRespMessage) recv); return true; } else { log.error("发送包和接受包都有误:" + pack + recv); return false; } }