读书人

问一个新手有关问题求大神指导

发布时间: 2012-09-10 22:20:12 作者: rapoo

问一个新手问题,求大神指导。
我正在做一个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

读书人网 >C++

热点推荐