if (wd == null) {
throw new Exception("Need invoke 'registerRec' method before invoke 'receive' method!");
}
AutoResetEvent event = wd.getEvent();
int timeout = getReadTimeout(socketConfig.getReceiveTimeout(), queueLen);
if (!event.waitOne(timeout)) {
throw new TimeoutException("Receive data timeout or error!timeout:" + timeout + "ms,queue length:" + queueLen);
}
byte[] data = wd.getData();
int offset = SFPStruct.Version;
int len = ByteConverter.bytesToIntLittleEndian(data, offset);