private void ReceiveCallback(IAsyncResult ar) { var connection = (ConnectionInfo)ar.AsyncState; lock (connection.LockObject) { try { var bytesRead = connection.Socket.EndReceive(ar); if (bytesRead == 0) { connection.Dispose(); return; } var oneGood = false; var receivedQuery = connection.Buffer.GetString(0, bytesRead).Split('\n'); foreach (var s in receivedQuery) { if (JsonValidator.TryParseJson(s, out var parsed)) { oneGood = true; Handle(connection, parsed); connection.Socket?.BeginReceive(connection.Buffer, 0, connection.Buffer.Length, SocketFlags.None, ReceiveCallback, connection); } } if (!oneGood) { Console.WriteLine("---------------------------------"); Console.WriteLine("Can't handle Json"); Console.WriteLine(string.Join("\n", receivedQuery)); Console.WriteLine("---------------------------------"); connection.Dispose(); } } catch (Exception ex) { Console.WriteLine(ex); } } }
private void ReceiveCallback(IAsyncResult ar) { ConnectionInfo connection = (ConnectionInfo)ar.AsyncState; try { int bytesRead = connection.Socket.EndReceive(ar); if (bytesRead == 0) { connection.Dispose(); return; } bool oneGood = false; var str = connection.Buffer.GetString(0, bytesRead).Split('\n'); JObject parsed; foreach (var s in str) { if (JsonValidator.TryParseJson(s, out parsed)) { oneGood = true; Handle(connection, parsed); connection.Socket?.BeginReceive(connection.Buffer, 0, 1024, SocketFlags.None, ReceiveCallback, connection); } } if (!oneGood) { Console.WriteLine("---------------------------------"); Console.WriteLine("Can't handle Json"); Console.WriteLine(string.Join("\n", str)); Console.WriteLine("---------------------------------"); connection.Dispose(); } } catch (Exception ex) { Console.WriteLine(ex); } }