From c4e63cb7d414952c2048c9e76280e1522b737e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9C=B0=E5=B9=B3=E7=BA=BF?= <22250530@qq.com> Date: Thu, 27 Aug 2015 16:59:24 +0800 Subject: [PATCH] --- src/com/wentch/redkale/net/sncp/SncpClient.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/wentch/redkale/net/sncp/SncpClient.java b/src/com/wentch/redkale/net/sncp/SncpClient.java index 9ded9f096..e693db2cd 100644 --- a/src/com/wentch/redkale/net/sncp/SncpClient.java +++ b/src/com/wentch/redkale/net/sncp/SncpClient.java @@ -285,7 +285,13 @@ public final class SncpClient { conn.read(buffer).get(readto > 0 ? readto : 5, TimeUnit.SECONDS); buffer.flip(); long rseqid = buffer.getLong(); - if (rseqid != seqid) throw new RuntimeException("sncp send seqid = " + seqid + ", but receive seqid =" + rseqid); + while (rseqid != seqid) { + if (!conn.isTCP()) throw new RuntimeException("sncp send seqid = " + seqid + ", but receive seqid =" + rseqid); + buffer.clear(); + conn.read(buffer).get(readto > 0 ? readto : 5, TimeUnit.SECONDS); + buffer.flip(); + rseqid = buffer.getLong(); + } if (buffer.getChar() != HEADER_SIZE) throw new RuntimeException("sncp buffer receive header.length not " + HEADER_SIZE); long rserviceid = buffer.getLong(); if (rserviceid != serviceid) throw new RuntimeException("sncp send serviceid = " + serviceid + ", but receive serviceid =" + rserviceid);