|
|
@ -15,7 +15,8 @@ namespace PComm |
|
|
|
{ |
|
|
|
{ |
|
|
|
public class PClient |
|
|
|
public class PClient |
|
|
|
{ |
|
|
|
{ |
|
|
|
private readonly int BUFF_SIZE = 1024 * 50; |
|
|
|
private readonly int BUFF_SIZE = 1000 * 50; // 50kB |
|
|
|
|
|
|
|
private readonly int LARGE_DATA_SIZE_THRESHOLD = 1000000; // 1MB |
|
|
|
|
|
|
|
|
|
|
|
public delegate void ClientReceivedHandler(PClient sender, PDataType dataType, byte[] data); |
|
|
|
public delegate void ClientReceivedHandler(PClient sender, PDataType dataType, byte[] data); |
|
|
|
public event ClientReceivedHandler OnReceived; |
|
|
|
public event ClientReceivedHandler OnReceived; |
|
|
@ -158,7 +159,8 @@ namespace PComm |
|
|
|
socket.Receive(sizeBuff, sizeBuff.Length, SocketFlags.None); |
|
|
|
socket.Receive(sizeBuff, sizeBuff.Length, SocketFlags.None); |
|
|
|
int dataSize = BitConverter.ToInt32(sizeBuff, 0); |
|
|
|
int dataSize = BitConverter.ToInt32(sizeBuff, 0); |
|
|
|
|
|
|
|
|
|
|
|
// ready to receive data; |
|
|
|
// if data size is large, ready to receive data; |
|
|
|
|
|
|
|
if (dataSize >= LARGE_DATA_SIZE_THRESHOLD) |
|
|
|
Thread.Sleep(100); |
|
|
|
Thread.Sleep(100); |
|
|
|
|
|
|
|
|
|
|
|
using (MemoryStream ms = new MemoryStream()) |
|
|
|
using (MemoryStream ms = new MemoryStream()) |
|
|
|