AMF_Encode
来源:互联网 发布:sql删除重复 编辑:程序博客网 时间:2024/06/11 01:00
enc = AMF_EncodeString(enc, pend, &av_createStream);enc = AMF_EncodeNumber(enc, pend, ++r->m_numInvokes);
</pre><pre name="code" class="cpp">//======================================================================typedef struct AVal{ char *av_val; int av_len;} AVal;//======================================================================
char * AMF_EncodeString(char *output, char *outend, const AVal *bv){ if(bv->av_len < 65536 && output + 1 + 2 + bv->av_len > outend) return NULL; if(output + 1 + 4 + bv->av_len > outend) return NULL; if(bv->av_len<65536) { *output++ = AMF_STRING; output = AMF_EncodeInt16(output, outend, bv->av_len); } else { *output++ = AMF_LONG_STRING; output = AMF_EncodeInt32(output, outend, bv->av_len); } memcpy(output, bv->av_val, bv->av_len); output += bv->av_len; return output;}//======================================================================
char* AMF_EncodeNumber(char *output, char *outend, double dVal){ if(output + 1 + 8 > outend) return NULL; *output++=AMF_NUMBER; //type: Number#if __FLOAT_WORD_ORDER == __BYTE_ORDER //#define __FLOAT_WORD_ORDER __BYTE_ORDER #if __BYTE_ORDER == __BIG_ENDIAN memcpy(output,&dVal,8); #elif __BYTE_ORDER == __LITTLE_ENDIAN //#define __BYTE_ORDER __LITTLE_ENDIAN{unsigned char *ci, *co;ci = (unsigned char*)&dVal;co = (unsigned char*)output;co[0]=ci[7];co[1]=ci[6];co[2]=ci[5];co[3]=ci[4];co[4]=ci[3];co[5]=ci[2];co[6]=ci[1];co[7]=ci[0];} #endif#else //......#endifreturn output + 8;}
0 0
- AMF_Encode
- Python教程学习简记7--Python 可迭代对象:Iterable ,迭代器:Iterator
- android 数据库sqlite的使用
- 距离判别法
- mysql LAST_INSERT_ID详解
- 金融数据分析quantmod 函数
- AMF_Encode
- Java中Reflection机制的初步理解(一)
- android多线程使用入门(简要笔记)
- java基础之连接redis
- LCS滚动数组解法
- Kali 2.0如何安装nvidia 340.XX驱动
- private Handler mHandler = new Handler() {...}是属于内部类
- hdu 1312 Red and Black
- 7.1、KNN实例