diff --git a/websocket-sharp/Ext.cs b/websocket-sharp/Ext.cs index 3b549de8..74f0a79b 100644 --- a/websocket-sharp/Ext.cs +++ b/websocket-sharp/Ext.cs @@ -693,11 +693,21 @@ namespace WebSocketSharp { var buff = new byte[length]; var offset = 0; + var retry = 0; var nread = 0; + while (length > 0) { nread = stream.Read (buff, offset, length); - if (nread == 0) + if (nread <= 0) { + if (retry < _retry) { + retry++; + continue; + } + return buff.SubArray (0, offset); + } + + retry = 0; offset += nread; length -= nread;