当前位置: 技术问答>linux和unix
会一点socket编程的请进
来源: 互联网 发布时间:2016-12-29
本文导语: 我目前在做一个C/S的程序, 流程非常的简单, 网络模块只包含两个流程: 第一个: 客户端向服务器发送验证请求, 请求信息中包含用户名和密码, 服务器收到客户端的验证请求后,向客户端响应验证结果信...
我目前在做一个C/S的程序, 流程非常的简单, 网络模块只包含两个流程: 第一个: 客户端向服务器发送验证请求, 请求信息中包含用户名和密码, 服务器收到客户端的验证请求后,向客户端响应验证结果信息(成功或失败)。
第二个: 客户端向服务器发送退出的请求,请求中必须包含该客户端的用户名。 服务器端收到退出请求后,做一下清理,不作响应。
我第一次写网络程序, 想请群里的大侠们帮忙定义一下包结构和协议问题, 万分感激!!!
第二个: 客户端向服务器发送退出的请求,请求中必须包含该客户端的用户名。 服务器端收到退出请求后,做一下清理,不作响应。
我第一次写网络程序, 想请群里的大侠们帮忙定义一下包结构和协议问题, 万分感激!!!
|
typedef struct chat_head
{
int msgType; //消息类型,可根据想要发送的消息进行不断的扩充;
int nSeq; //序列号,可以在程序中进行次序判断;(适用于UDP和TCP等)
int msglen; //消息体长度,指定消息体有多长,消息体可定义不同的结构;
}chat_head_t;
//登录请求消息体
typedef struct LogIn_msg_req{
char Username[32];//用来存放用户名;
char UserPwd[32]; //用户登录密码;
}LogIn_msg_req_t;
//登录响应消息体
typedef struct LogIn_msg_resp{
char Username[32];//用来存放用户名;
char UserPwd[32]; //用户登录密码;
int nResult; //登录结果,可扩充不同的原因值;
}LogIn_msg_resp_t;
{
int msgType; //消息类型,可根据想要发送的消息进行不断的扩充;
int nSeq; //序列号,可以在程序中进行次序判断;(适用于UDP和TCP等)
int msglen; //消息体长度,指定消息体有多长,消息体可定义不同的结构;
}chat_head_t;
//登录请求消息体
typedef struct LogIn_msg_req{
char Username[32];//用来存放用户名;
char UserPwd[32]; //用户登录密码;
}LogIn_msg_req_t;
//登录响应消息体
typedef struct LogIn_msg_resp{
char Username[32];//用来存放用户名;
char UserPwd[32]; //用户登录密码;
int nResult; //登录结果,可扩充不同的原因值;
}LogIn_msg_resp_t;