注册 登录
编程论坛 C++教室

数据包发送的疑惑

yening520 发布于 2007-04-18 15:14, 796 次点击

char szPacket[64];

zPacket = szPacket + 2;
zPacket = SetChar( zPacket, S_UDPLOG );
zPacket = SetInteger( zPacket, num );
zPacket = SetInteger( zPacket, saddr.sin_port );
SetShort( szPacket, zPacket - szPacket );
GameWorld.SendRoom( szPacket, zPacket - szPacket, User[num].m_room );
User[num].m_port = saddr.sin_port;
这些发数据包的时候是什么意思啊 不会吧那个覆盖掉吗

5 回复
#2
yening5202007-04-18 16:05
zPacket = szPacket + 2; 还有啊 这句什么意思啊 要空两位吗?
为什么啊
#3
yening5202007-04-19 13:52
char* GetInteger(char* pPacket,int& nNum)
{
nNum = (BYTE)pPacket[0] + ((BYTE)pPacket[1] << 8) + ((BYTE)pPacket[2] << 16) + ((BYTE)pPacket[3] << 24);//
return pPacket + 4;
}
还以这句 怎么移动啊 是什么意思啊
#4
song42007-04-19 20:20
以下是引用yening520在2007-4-18 16:05:20的发言:
zPacket = szPacket + 2; 还有啊 这句什么意思啊 要空两位吗?
为什么啊

SZ是该指针的头地址
+2后Z指到第3个字节

#5
song42007-04-19 20:24
以下是引用yening520在2007-4-19 13:52:24的发言:
char* GetInteger(char* pPacket,int& nNum)
{
nNum = (BYTE)pPacket[0] + ((BYTE)pPacket[1] << 8) + ((BYTE)pPacket[2] << 16) + ((BYTE)pPacket[3] << 24);//
return pPacket + 4;
}
还以这句 怎么移动啊 是什么意思啊
以BYTE为单位移动
大概意思好象是让NUM指象该指针的4个CHAR单位
并以INT存储

什么背景的程序
#6
yening5202007-04-21 13:42
回复:(song4)以下是引用yening520在2007-4-18 16:0...

这个听起来明白了 谢谢啊

1