|
|
假如我在游戏中定义了一个数据包
typedef struct
{
int Size; //数据包大小
int Id; //发送者
char Buff[100]; //数据包里的内容
}stNetMsg;
暂且就这么定义了一个数据包结构
此结构的大小是 4+4+100=108个字节
那么一个数据包是108个字节
服务端发送 send(s, szMessage, sizeof(Msg), 0); 一次发送108个字节
然后客户端接收 recv(s,buff,sizeof(stNetMsg),0); 一次接收108个字节
但是要这样的话 不管什么消息 即使是一个只需要Buff里10个字节的消息 在这里
还是要发送108个字节.....任何消息 大的 小的 都发送108个字节
这样效率会不会很低?
但具我所知道的有些游戏数据包的大小不一样的根据具体的情况定义,比如简单的一个小动作数据包是32个字节 大一点的复杂动作就有100多字节
如果服务器发送了一个32的字节的数据包
客户端怎么就知道当前数据包的大小是32??不知道数据包的大小客户端还怎么接收数据??
|
|