[Modify] Polish it
This commit is contained in:
parent
a749a67838
commit
bee39e08a9
@ -205,15 +205,6 @@ namespace WebSocketSharp
|
|||||||
action ();
|
action ();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool writeTo (this Stream stream, Stream destination, int length, byte[] buffer)
|
|
||||||
{
|
|
||||||
var bytes = stream.readBytes (buffer, 0, length);
|
|
||||||
var len = bytes.Length;
|
|
||||||
destination.Write (bytes, 0, len);
|
|
||||||
|
|
||||||
return len == length;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Internal Methods
|
#region Internal Methods
|
||||||
@ -606,20 +597,23 @@ namespace WebSocketSharp
|
|||||||
internal static byte[] ReadBytes (this Stream stream, long length, int bufferLength)
|
internal static byte[] ReadBytes (this Stream stream, long length, int bufferLength)
|
||||||
{
|
{
|
||||||
using (var dest = new MemoryStream ()) {
|
using (var dest = new MemoryStream ()) {
|
||||||
var cnt = length / bufferLength;
|
try {
|
||||||
var rem = (int) (length % bufferLength);
|
|
||||||
|
|
||||||
var buff = new byte[bufferLength];
|
var buff = new byte[bufferLength];
|
||||||
var end = false;
|
var nread = 0;
|
||||||
for (long i = 0; i < cnt; i++) {
|
while (length > 0) {
|
||||||
if (!stream.writeTo (dest, bufferLength, buff)) {
|
if (length < bufferLength)
|
||||||
end = true;
|
bufferLength = (int) length;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!end && rem > 0)
|
nread = stream.Read (buff, 0, bufferLength);
|
||||||
stream.writeTo (dest, rem, new byte[rem]);
|
if (nread == 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
dest.Write (buff, 0, nread);
|
||||||
|
length -= nread;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
}
|
||||||
|
|
||||||
dest.Close ();
|
dest.Close ();
|
||||||
return dest.ToArray ();
|
return dest.ToArray ();
|
||||||
|
Loading…
Reference in New Issue
Block a user