Ejemplo n.º 1
0
    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;
        }
    }
Ejemplo n.º 2
0
        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;
            }
        }