From 4bd949ef79f0918a1352faed79418c546ce9833f Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Tue, 19 Dec 2023 00:54:41 +0100 Subject: [PATCH] Fix receiving of `NetworkClient` `SendAsync` answer --- .../Networking/NetworkClient.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/HyperbolicDownloaderApi/Networking/NetworkClient.cs b/HyperbolicDownloaderApi/Networking/NetworkClient.cs index cfc563e..7147bdf 100644 --- a/HyperbolicDownloaderApi/Networking/NetworkClient.cs +++ b/HyperbolicDownloaderApi/Networking/NetworkClient.cs @@ -32,9 +32,23 @@ internal class NetworkClient(FilesManager filesManager) await nwStream.WriteAsync(bytesToSend); + List bytes = []; + byte[] bytesToRead = new byte[client.ReceiveBufferSize]; - int bytesRead = await nwStream.ReadAsync(bytesToRead.AsMemory(0, client.ReceiveBufferSize)); - string response = Encoding.ASCII.GetString(bytesToRead, 0, bytesRead); + + while (nwStream.CanRead) + { + int bytesRead = await nwStream.ReadAsync(bytesToRead.AsMemory(0, client.ReceiveBufferSize)); + + if (bytesRead == 0) + { + break; + } + + bytes.AddRange(bytesToRead.AsMemory(0, bytesRead).ToArray()); + } + + string response = Encoding.ASCII.GetString(bytes.ToArray()); client.Close();