| 
					阅读:1483回复:2
				 网络字节顺序的问题
					这里问一个菜鸟问题:
 我拦截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:%d\n", pRtpHead->version); TRACE("RTP PayloadType: %d\n", pRtpHead->pt); TRACE("RTP Sequence:%d\n", pRtpHead->seq); if((pRtpHead->version==2)&&(pRtpHead->pt==4)) return TRUE; } 不知道怎么样才能得到正确的结果? | |
| 沙发#发布于:2004-10-13 12:24 
					你调试过没有?哪条语句出问题?
 这个应该和网络字节顺序无关吧?你为什么不看看包的内容呢? 有个办法:自己发包,然后截,再对照原始包就可以知道了。 | |
| 板凳#发布于:2004-10-13 09:25 
					真的没人感兴趣吗,这个问题在用sock通信分析协议时常遇到的问题.
 可能是问题太菜啦,高手不肯指点啊 | |
 
							
