public static Packet Deserialize(String m)
    {
        Packet p = new Packet();
        
        try
        {
            for ( int i = m.indexOf(delimiter), j = 0, k = 0 ;
                    i != -1;
                    j = i + delimiter.length(), i = m.indexOf(delimiter, i+1), k++ )
            {
                String fragment = m.substring(j, i);
                if ( k == 0 )
                {
                    p.setOrigin(fragment);
                }
                else if ( k == 1 )
                {
                    p.setDestination(fragment);
                }
                else if ( k == 2 )
                {
                    p.setOpcode(fragment);
                }
                else if ( k == 3 )
                {
                    p.setData(fragment);
                }
                else
                {
                    throw new Exception("INCORRECT FORMAT");
                }
            }
        }
        catch ( Exception ex )
        {
            ex.printStackTrace();
            p = null;
        }
        
        return p;
    }