📄 mopacutl.cpp
字号:
/*! \file MoPacUtl.cpp \brief Mona 僷働僢僩儐乕僥傿儕僥傿僋儔僗 Copyright (c) 2004 Yamami All rights reserved. License=MIT/X License \author Yamami \version $Revision: 1.2 $ \date create:2004/08/18 update:$Date: 2004/09/20 15:29:03 $*//*! \class MoPacUtl * \brief Mona 僷働僢僩儐乕僥傿儕僥傿僋儔僗 */#include "MoPacUtl.h"/*! \brief initialize MoPacUtl 僐儞僗僩儔僋僞 \author Yamami \date create:2004/08/12 update:*/MoPacUtl::MoPacUtl(){}/*! \brief initialize MoEther init \author Yamami \date create:2004/08/12 update:*//*! \brief initialize MoPacUtl 僨僗僋僩儔僋僞 \author Yamami \date create:2004/08/12 update:*/MoPacUtl::~MoPacUtl() {}/*! \brief packet_get_4byte 4僶僀僩僷働僢僩庢摼 僱僢僩儚乕僋僄儞僨傿傾儞曄姺 \param byte *buf [in] 懳徾僶僢僼傽 \param int offset [in] 懳徾僆僼僙僢僩 \return dword 庢摼抣 \author Yamami \date create:2004/08/18 update:*/dword MoPacUtl::packet_get_4byte(byte *buf, int offset){ dword a, b, c; a = (dword)buf[offset++] << 24; b = (dword)buf[offset++] << 16; c = (dword)buf[offset++] << 8; return a | b | c | buf[offset];}/*! \brief packet_get_2byte 2僶僀僩僷働僢僩庢摼 僱僢僩儚乕僋僄儞僨傿傾儞曄姺 \param byte *buf [in] 懳徾僶僢僼傽 \param int offset [in] 懳徾僆僼僙僢僩 \return word 庢摼抣 \author Yamami \date create:2004/08/18 update:*/word MoPacUtl::packet_get_2byte(byte *buf, dword offset){ word a; a = buf[offset++] << 8; return a | buf[offset];}/*! \brief packet_put_4byte 4僶僀僩僷働僢僩愝掕 僱僢僩儚乕僋僄儞僨傿傾儞曄姺 \param byte *buf [in] 懳徾僶僢僼傽 \param int offset [in] 懳徾僆僼僙僢僩 \param idword [in] 愝掕抣 \return void 柍偟 \author Yamami \date create:2004/08/18 update:*/void MoPacUtl::packet_put_4byte(byte* buf, int offset, dword val){ buf += offset; *buf++ = (val >> 24) & 0xff; *buf++ = (val >> 16) & 0xff; *buf++ = (val >> 8) & 0xff; *buf = val & 0xff;}/*! \brief packet_put_2byte 2僶僀僩僷働僢僩愝掕 僱僢僩儚乕僋僄儞僨傿傾儞曄姺 \param byte *buf [in] 懳徾僶僢僼傽 \param int offset [in] 懳徾僆僼僙僢僩 \param iword [in] 愝掕抣 \return void 柍偟 \author Yamami \date create:2004/08/18 update:*/void MoPacUtl::packet_put_2byte(byte* buf, int offset, word val){ buf += offset; *buf++ = (val >> 8) & 0xff; *buf = val & 0xff;}/*! \brief calcCheckSum 僠僃僢僋僒儉娭悢 \param dword *data [in] 僠僃僢僋懳徾 \param int size [in] 僠僃僢僋懳徾僒僀僘 \return word \author Yamami \date create:2004/09/20 update:*/word MoPacUtl::calcCheckSum(dword *data,int size){ union{ unsigned long long u64; dword u32[2]; word u16[4]; }sum; dword tmp; sum.u64=0; for(;size>=sizeof(dword);size-=sizeof(dword)) sum.u64+=*data++; if(size>0)sum.u64+=*data&((1<<(size*8))-1); tmp=sum.u32[1]; sum.u32[1]=0; sum.u64+=tmp; tmp=sum.u32[1]; sum.u32[1]=0; sum.u32[0]+=tmp; tmp=sum.u16[1]; sum.u16[1]=0; sum.u32[0]+=tmp; tmp=sum.u16[1]; sum.u16[1]=0; sum.u16[0]+=tmp; return ~sum.u16[0];}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -