基于Linux的socket编程模板

基于Linux的socket编程模板

ID:37755435

大小:43.39 KB

页数:15页

时间:2019-05-30

基于Linux的socket编程模板_第1页
基于Linux的socket编程模板_第2页
基于Linux的socket编程模板_第3页
基于Linux的socket编程模板_第4页
基于Linux的socket编程模板_第5页
资源描述:

《基于Linux的socket编程模板》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于Linux的socket编程模板   在网络编程编程中,我们经常会遇到这样一种C/S架构,服务器端(Server)监听客户端(Client)发送过来的命令,然后解析该命令,并做对应的处理,最后返回处理结果(例如成功或者失败及原因)给客户端。   最近,在Linux下做网络编程,涉及的就是上面的这种需求,简单地整理了下自己的代码,分享在这里吧,供初学者参考。   首先说一下编程思路吧。   在这种情况客户端必须实现的的接口有:连接服务器、发送、断开连接。   服务器端,有一个主线程,用于监听客户端的连接请求,一旦有新客户端连

2、接,则创建一个新的socket及线程专门服务这个客户端。这个服务线程专门监听该客户端的命令,并且解析命令进行服务器,直到客户端断开连接或者发送关闭连接的命令。   另外,需要涉及一个通信协议,约定命令的包头、命令的识别码、命令的参数。   思路就说到这儿了,下面的相关代码,附件中有完整的代码,包含了Makefile文件。一、通信协议设计1.////////////////////////////////////////////////////////////////////////// 2.//  COPYRIGHT NOTI

3、CE 3.//  Copyright (c) 2011, 华中科技大学 ticktick(版权声明) 4.//  All rights reserved. 5.//  6./// @file    Command.h   7./// @brief   命令包声明文件 8./// 9./// 定义各种TCP命令包以及相关结构体 10./// 11./// @version 1.0    12./// @author  lujun  13./// @E-mail  lujun.hust@gmail.com 14./// @date

4、    2011/08/21 1.// 2.// 3.//  修订说明: 4.////////////////////////////////////////////////////////////////////////// 5. 6.#ifndef COMMAND_H_ 7.#define COMMAND_H_ 8. 9.typedef unsigned char uint8_t; 10. 11.// TCP CMD header len 12.#define TCP_CMD_HEADER_LEN 8 13. 14.// 

5、CMD header 15.static uint8_t TCP_CMD_HEADER_STR[TCP_CMD_HEADER_LEN] = { 0xAA,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xFF }; 16. 17.// max user name len  18.#define MAX_USER_NAME_LEN 20 19. 20.// server cmd struct 21.typedef enum _ServerCMD 22.{ 23.    CMD_SAVE_USER_NAME,    

6、     // save user name 24.    CMD_SAVE_USER_AGE,          // save user age 25. 26.}ServerCMD; 27. 28.// return cmd  29.typedef enum _ReturnCMD 30.{ 31.    DVS_RETURN_SUCCESS = 0,       32.    DVS_RETURN_FAIL,              33.    DVS_RETURN_TIMEOUT,           34.    

7、DVS_RETURN_INVLID_HEADER,     35.    DVS_RETURN_INVLID_CMD,        36.    DVS_RETURN_INVLID_PRM,        37. 38.}ReturnCMD; 39. 40.// 1bytes aligning 41.#pragma pack( push, 1 ) 42. 1.// server pack from client 2.typedef struct _ServerPack  3.{ 4.    // cmd header 5. 

8、   uint8_t cmdHeader[TCP_CMD_HEADER_LEN]; 6. 7.    // command id 8.    ServerCMD serverCMD; 9. 10.    // cmd param 11.    union 12.    { 1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。