问一个新手问题,求大神指导。
我正在做一个TCP协议的游戏服务端demo
遇到一个关于send()发送完数据后,客户端没有响应的问题。
- C/C++ code
// 用户数据struct userData{ UINT uUserID; // 玩家ID UINT iTableId; // 桌子ID UINT iChairId; // 椅子ID BYTE bState; // 玩家状态 char cName[20]; // 玩家昵称};struct gameConfig{ // 用户数据 userData userList[2];}*pGConfig;现在的问题是当我利用send发送完后,如下代码:
size=send(sClientSocketList[i], (char*)pGConfig, sizeof(gameConfig), 0);
客户端无任何响应。size和sizeof(gameConfig)计算出来的值是相同的,表明发送了我想要发送的字节数。
但为什么客户端会没响应呢?
我当时在想是不是数据太大,发不出去,于是我把上面的结构体改成下面这样:
- C/C++ code
struct userData{ UINT uUserID; // 玩家ID// UINT iTableId; // 桌子ID// UINT iChairId; // 椅子ID BYTE bState; // 玩家状态 char cName[20]; // 玩家昵称};struct gameConfig{ // 用户数据 userData userList[2];}*pGConfig;就是把用户结构体里的桌子ID和椅子ID两个字段去掉,再利用send()发送,客户端有响应。
问题就是:为什么加两个字段后发送,客户端没响应,就感觉跟没发送一样? 请大神指导一下新手。
[解决办法]
调试tcp,有时不用抓包软件是不可能解决问题的。
[解决办法]
Wireshark