test3 - memorystream retry

main
syneffort 2 years ago
parent b1cbed9c78
commit 166f7606a5
  1. 55
      SocketStudy/PComm/PClient.cs

@ -184,47 +184,32 @@ namespace PComm
if (dataSize >= BUFF_SIZE) if (dataSize >= BUFF_SIZE)
Thread.Sleep(100); Thread.Sleep(100);
List<byte> receivedData = new List<byte>(dataSize); byte[] receivedData = new byte[dataSize];
while (dataSize > 0) using (MemoryStream ms = new MemoryStream(dataSize))
{ {
byte[] buff; while (dataSize > 0)
if (dataSize < BUFF_SIZE) {
buff = new byte[dataSize]; byte[] buff;
else if (dataSize < BUFF_SIZE)
buff = new byte[BUFF_SIZE]; buff = new byte[dataSize];
else
int receiveSize = socket.Receive(buff, buff.Length, SocketFlags.None); buff = new byte[BUFF_SIZE];
receivedData.AddRange(buff); int receiveSize = socket.Receive(buff, buff.Length, SocketFlags.None);
dataSize -= receiveSize;
// Thread.Sleep(1);
ms.Write(buff, 0, receiveSize);
dataSize -= receiveSize;
}
receivedData = ms.ToArray();
} }
//using (MemoryStream ms = new MemoryStream(dataSize))
//{
// while (dataSize > 0)
// {
// byte[] buff;
// if (dataSize < BUFF_SIZE)
// buff = new byte[dataSize];
// else
// buff = new byte[BUFF_SIZE];
// int receiveSize = socket.Receive(buff, buff.Length, SocketFlags.None);
// // Thread.Sleep(1);
// ms.Write(buff, 0, buff.Length);
// dataSize -= receiveSize;
// }
// receivedData = ms.ToArray();
//}
byte[] data; byte[] data;
if (isCompressed) if (isCompressed)
data = PUtil.DecompressBytes(receivedData.ToArray()); data = PUtil.DecompressBytes(receivedData);
else else
data = receivedData.ToArray(); data = receivedData;
if (OnReceived != null) if (OnReceived != null)
OnReceived(this, dataType, data); OnReceived(this, dataType, data);

Loading…
Cancel
Save