void ReceiveCallback(IAsyncResult AR) { Debug.Log("Receive data"); //number of recieved bytes int received = clientSocket.EndReceive(AR); if (received == 0) { return; } //temporary buffer, that copies last bytes it got to process them byte[] dataBuff = new byte[received]; Array.Copy(buffer, dataBuff, received); //Initialize packet BasePacket packet = null; try { //dataBuff.PrintData(false); packet = dataBuff.Deserialize(); Debug.Log(Helpers.Helper.GetObjectProps(packet)); Infrastructure.Models.Result result = null; Dispatcher.RunOnMainThread(() => { result = packet.Execute(); }); Debug.Log("Exectued"); if (result != null && !result.IsVoidResult) { //send bytes Send(result.PacketBytes); } else { clientSocket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, ReceiveCallback, null); } } catch (Exception ex) { Debug.Log(ex.Message); return; } }
static void ReceiveCallback(IAsyncResult AR) { //number of recieved bytes int received = _clientSocket.EndReceive(AR); if (received == 0) { return; } //temporary buffer, that copies last bytes it got to process them byte[] dataBuff = new byte[received]; Array.Copy(_buffer, dataBuff, received); //Initialize packet BasePacket packet = null; try { dataBuff.PrintData(true); packet = dataBuff.Deserialize(); var test = packet.Execute(); if (test != null && !test.IsVoidResult) { //send bytes Send(test.PacketBytes); } else { _clientSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, ReceiveCallback, null); } } catch (Exception ex) { Console.WriteLine(ex.Message); return; } }