这里将消息头和消息内容用继承的方式写出来,发包的时候一定要注意字节对齐。
服务器
#define WIN32_LEAN_AND_MEAN
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <windows.h>
#include <WinSock2.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib")
enum CMD {
CMD_LOGIN,
CMD_LOGIN_RESULT,
CMD_LOGOUT,
CMD_LOGOUT_RESULT,
CMD_ERROR,
};
// 消息头
struct DataHeader {
short dataLength;
short cmd;
};
struct Login:public DataHeader {
Login() {
dataLength = sizeof(Login);
cmd = CMD_LOGIN;
}
char userName[32];
char PassWord[32];
};
struct LoginResult: public DataHeader {
LoginResult() {
dataLength = sizeof(LoginResult);
cmd = CMD_LOGIN;
result = 0;
}
int result;
};
struct Logout:public DataHeader {
Logout() {
dataLength = sizeof(Logout);
cmd = CMD_LOGOUT;
}
char userName[32];
};
struct LogOutResult:public DataHeader {
LogOutResult() {
dataLength = sizeof(LogOutR