diff --git a/websocket-sharp/Ext.cs b/websocket-sharp/Ext.cs index 6645dad7..3b549de8 100644 --- a/websocket-sharp/Ext.cs +++ b/websocket-sharp/Ext.cs @@ -712,14 +712,24 @@ namespace WebSocketSharp { using (var dest = new MemoryStream ()) { var buff = new byte[bufferLength]; + var retry = 0; var nread = 0; + while (length > 0) { if (length < bufferLength) bufferLength = (int) length; nread = stream.Read (buff, 0, bufferLength); - if (nread == 0) + if (nread <= 0) { + if (retry < _retry) { + retry++; + continue; + } + break; + } + + retry = 0; dest.Write (buff, 0, nread); length -= nread;