采用结构体通信需要注意些什么问题呢?我的服务器端接收到的数据是错误的,cmd正确,其他为 ^@ 。struct MsgPackage{
char cmd;
int ack;
char userName[20];
char userPswd[16];
struct TaskC TaskClass[MAXTCNUM];
struct Task TaskList[MAXTASKNUM];
};socket 单词传输字节大小限制是多少?
vc编译器有其他特性?
char cmd;
int ack;
char userName[20];
char userPswd[16];
struct TaskC TaskClass[MAXTCNUM];
struct Task TaskList[MAXTASKNUM];
};socket 单词传输字节大小限制是多少?
vc编译器有其他特性?
{
// Attributes
public:// Operations
public:
CMainSocket();
virtual ~CMainSocket(); BOOL m_bConnected; //是否连接
UINT m_nLength; //消息长度
#pragma pack(4)
struct TaskC{ //待办任务类别
char TcNo[2]; //待办任务模块编号
char TcContent[10]; //待办任务模块名称
}; struct Task{ //待办任务
char TaskNo[10]; //待办任务编号
char TaskContent[1024]; //待办任务内容
};
struct MsgPackage{ //通信协议结构体
int ack; //标志位
char cmd; //操作命令
char userName[20]; //用户名
char userPswd[20]; //用户密码
//struct TaskC TaskClass[MAXTCNUM]; //待办任务类别
//struct Task TaskList[MAXTASKNUM]; //待办任务队列
}msgpackage;
#pragma pack()
// Overrides
public:
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMainSocket)
//}}AFX_VIRTUAL // Generated message map functions
//{{AFX_MSG(CMainSocket)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG// Implementation
protected:
};
问题渐渐明了。
之前数据包结构体定义在socket类中,现在单独定义,数据正常了。