This commit is contained in:
Ivan Filipenkov 2023-08-18 18:19:31 +03:00
parent c108c1899b
commit b2ed0bc14c
2 changed files with 2 additions and 21 deletions

View file

@ -52,7 +52,7 @@ namespace DangerousD.GameCore.Network
int count = clientSocket.Receive(so.buffer, so.UploadedBytesCount, length - so.UploadedBytesCount, SocketFlags.None); int count = clientSocket.Receive(so.buffer, so.UploadedBytesCount, length - so.UploadedBytesCount, SocketFlags.None);
so.UploadedBytesCount += count; so.UploadedBytesCount += count;
} }
List<NetworkTask> tasks = JsonConvert.DeserializeObject<List<NetworkTask>>(so.sb.ToString()); List<NetworkTask> tasks = JsonConvert.DeserializeObject<List<NetworkTask>>(Encoding.Unicode.GetString(so.buffer, 0, length));
GetReceivingMessages(tasks); GetReceivingMessages(tasks);
} }
} }
@ -113,25 +113,7 @@ namespace DangerousD.GameCore.Network
int count = socket.Receive(so.buffer, so.UploadedBytesCount, length-so.UploadedBytesCount, SocketFlags.None); int count = socket.Receive(so.buffer, so.UploadedBytesCount, length-so.UploadedBytesCount, SocketFlags.None);
so.UploadedBytesCount += count; so.UploadedBytesCount += count;
} }
List<NetworkTask> tasks = JsonConvert.DeserializeObject<List<NetworkTask>>(so.sb.ToString()); List<NetworkTask> tasks = JsonConvert.DeserializeObject<List<NetworkTask>>(Encoding.Unicode.GetString(so.buffer, 0, length));
GetReceivingMessages(tasks);
}
}
private void AsyncReceiveCallback(IAsyncResult ar)
{
StateObject so = ar.AsyncState as StateObject;
Socket clientSocket = so.workSocket;
int readCount = clientSocket.EndReceive(ar);
so.UploadedBytesCount += readCount;
so.sb.Append(Encoding.Unicode.GetString(so.buffer, 0, readCount));
if (so.UploadedBytesCount < so.bufferSize)
{
clientSocket.BeginReceive(so.buffer, 0, so.bufferSize, SocketFlags.None, new AsyncCallback(AsyncReceiveCallback), so);
}
else
{
List<NetworkTask> tasks = JsonConvert.DeserializeObject<List<NetworkTask>>(so.sb.ToString());
GetReceivingMessages(tasks); GetReceivingMessages(tasks);
} }
} }

View file

@ -12,7 +12,6 @@ namespace DangerousD.GameCore.Network
public Socket workSocket; public Socket workSocket;
public int bufferSize; public int bufferSize;
public byte[] buffer; public byte[] buffer;
public StringBuilder sb = new StringBuilder();
public int UploadedBytesCount; public int UploadedBytesCount;
public StateObject(Socket socket, byte[] buffer) public StateObject(Socket socket, byte[] buffer)