阅读:1220回复:1
网络字节顺序问题
这里问一个菜鸟问题:
我拦截rtp数据包,下面是报头定义: #pragma pack(push,1) typedef struct _RTPHEADER { unsigned int version:2; /* protocol version */ unsigned int p:1; /* padding flag */ unsigned int x:1; /* header extension flag */ unsigned int cc:4; /* CSRC count */ unsigned int m:1; /* marker bit */ unsigned int pt:7; /* payload type */ unsigned short seq; /* sequence number */ unsigned int ts; /* timestamp */ unsigned int ssrc; /* synchronization source */ unsigned int csrc[1]; /* optional CSRC list */ }RTP_HEADER, *PRTP_HEADER; #pragma pack(pop) 可是因为网络字节顺序问题,我用下面的方法得到错误结果, BOOL CProcRTP::IsRTP(unsigned char *pkt, int len) { /*if(len<sizeof(RTP_HEADER)) return FALSE; PRTP_HEADER pRtpHead = (PRTP_HEADER)pkt; TRACE("RTP Version:%dn", pRtpHead->version); TRACE("RTP PayloadType: %dn", pRtpHead->pt); TRACE("RTP Sequence:%dn", pRtpHead->seq); if((pRtpHead->version==2)&&(pRtpHead->pt==4)) return TRUE; } 不知道怎么样才能得到正确的结果? |
|
沙发#
发布于:2004-10-13 08:53
这是一个vc开发网络通信常遇到的问题,一直没有简便的方法.有那为
大虾解决啦,请多指教 :) |
|