| | |
| | | #ifndef TCPDATATYPE_H |
| | | #define TCPDATATYPE_H |
| | | /* */ |
| | | |
| | | /* |
| | | * 客æ·ç«¯ä¸æå¡å¨äº¤äºçå¨ä½ç±»åæä¸¾ |
| | | * 注æï¼ä½¿ç¨ enum class é¿å
å½åå²çªï¼C++11ç¹æ§ï¼ |
| | | */ |
| | | enum class ActionType |
| | | { |
| | | HeartCheck = 100, |
| | | Login = 110, |
| | | Register = 120, |
| | | Msg = 200, |
| | | Download = 300 |
| | | HeartCheck = 100, // å¿è·³æ£æµï¼ä¿æè¿æ¥æ´»æ§ï¼ |
| | | Login = 110, // ç»å½è¯·æ± |
| | | Register = 120, // 注åè¯·æ± |
| | | Msg = 200, // æ®éæ¶æ¯ä¼ è¾ |
| | | Download = 300 // æä»¶ä¸è½½è¯·æ± |
| | | }; |
| | | /* ο HTTP Ӧ */ |
| | | |
| | | /* |
| | | * HTTP飿 ¼ååºç¶æç ï¼ç®åçï¼ |
| | | * ç¨äºæå¡å¨å客æ·ç«¯è¿åæä½ç»æç¶æ |
| | | */ |
| | | enum class ResponseCode |
| | | { |
| | | ResponseOK = 200, // ɹ |
| | | BadRequest = 400, // ͻ 󣬷 ޷ |
| | | Unauthorized = 401, // Ҫ û ֤ |
| | | Forbidden = 403, // ͻ ˵ 󣬵 Ǿܾ ִ д |
| | | NotFound = 404, // Þ· Òµ Ô´ |
| | | MethodNotAllowed = 405 // ͻ еķ ֹ |
| | | |
| | | ResponseOK = 200, // æåï¼OKï¼ |
| | | BadRequest = 400, // é误请æ±ï¼å®¢æ·ç«¯è¯·æ±è¯æ³éè¯¯ï¼ |
| | | Unauthorized = 401, // æªææï¼éè¦èº«ä»½éªè¯ï¼ |
| | | Forbidden = 403, // ç¦æ¢è®¿é®ï¼æéä¸è¶³ï¼ |
| | | NotFound = 404, // æªæ¾å°ï¼è¯·æ±èµæºä¸åå¨ï¼ |
| | | MethodNotAllowed = 405 // æ¹æ³ä¸å
许ï¼å¦ç¨GET请æ±POSTæ¥å£ï¼ |
| | | }; |
| | | /* Ϣ */ |
| | | |
| | | /* |
| | | * éç¨æ¶æ¯å¤´ç»æï¼æææ°æ®å
å¿
é¡»å
å«ï¼ |
| | | * ä½ç¨ï¼æ è¯æ¶æ¯ç±»åååºæ¬ä¿¡æ¯ |
| | | */ |
| | | struct Head |
| | | { |
| | | ActionType type; |
| | | int len; |
| | | int version; |
| | | ActionType type; // æ¶æ¯ç±»åï¼å¯¹åºActionTypeæä¸¾ï¼ |
| | | int len; // æ´ä¸ªæ°æ®å
çé¿åº¦ï¼åèæ°ï¼ |
| | | int version; // åè®®çæ¬å·ï¼ç¨äºå
¼å®¹æ§æ§å¶ï¼ |
| | | |
| | | // æé 彿°ï¼åå§åæ¶å¿
é¡»æä¾ä¸ä¸ªåæ°ï¼ |
| | | Head(ActionType ptype, int plen, int pversion) |
| | | { |
| | | len = plen; |
| | |
| | | version = pversion; |
| | | } |
| | | }; |
| | | struct HeartCheckReq // |
| | | |
| | | /* |
| | | * å¿è·³æ£æµè¯·æ±ç»æ |
| | | * ç¹ç¹ï¼åºå®ç±»ååé¿åº¦ï¼ä¸éè¦é¢å¤æ°æ®ï¼ |
| | | */ |
| | | struct HeartCheckReq |
| | | { |
| | | ActionType type; |
| | | int len; |
| | | ActionType type; // åºå®ä¸ºActionType::HeartCheck |
| | | int len; // ç»æä½èªèº«å¤§å° |
| | | |
| | | HeartCheckReq() |
| | | { |
| | | type = ActionType::HeartCheck; |
| | | len = sizeof(HeartCheckReq); |
| | | len = sizeof(HeartCheckReq); // èªå¨è®¡ç®ç»æä½å¤§å° |
| | | } |
| | | }; |
| | | |
| | | struct HeartCheckRes // Ó¦ |
| | | /* |
| | | * å¿è·³æ£æµååºç»æ |
| | | * 注æï¼ä¸è¯·æ±ç»æç¸åï¼å®é
å¯è½å
嫿å¡å¨ç¶æä¿¡æ¯ï¼ |
| | | */ |
| | | struct HeartCheckRes |
| | | { |
| | | ActionType type; |
| | | int len; |
| | | ActionType type; // åºå®ä¸ºActionType::HeartCheck |
| | | int len; // ç»æä½èªèº«å¤§å° |
| | | |
| | | HeartCheckRes() |
| | | { |
| | | type = ActionType::HeartCheck; |
| | | len = sizeof(HeartCheckRes); |
| | | } |
| | | }; |
| | | |
| | | /* |
| | | * ç¨æ·æ³¨å请æ±ç»æ |
| | | * ç»æï¼æ¶æ¯å¤´ + ç¨æ·ä¿¡æ¯å段 |
| | | */ |
| | | struct RegisterRequest |
| | | { |
| | | Head head; |
| | | char name[64]; |
| | | char password[64]; |
| | | char email[32]; |
| | | char phone[32]; |
| | | Head head; // å¿
é¡»å
å«çæ¶æ¯å¤´ |
| | | char name[64]; // ç¨æ·åï¼åºå®é¿åº¦64åèï¼ |
| | | char password[64];// å¯ç ï¼å»ºè®®å å¯åå¨ï¼ |
| | | char email[32]; // é®ç®±ï¼ç¨äºæ¾åå¯ç ï¼ |
| | | char phone[32]; // ææºå·ï¼å¯ééªè¯ï¼ |
| | | }; |
| | | |
| | | /* |
| | | * ç¨æ·ç»å½è¯·æ±ç»æ |
| | | * 注æï¼æ¯æ³¨å请æ±å°é®ç®±åææºåæ®µ |
| | | */ |
| | | struct LoginRequest |
| | | { |
| | | |
| | | Head head; |
| | | char name[64]; |
| | | char password[64]; |
| | | Head head; // æ¶æ¯å¤´ï¼typeåºä¸ºActionType::Loginï¼ |
| | | char name[64]; // ç¨æ·å |
| | | char password[64];// å¯ç ï¼å»ºè®®å å¯ä¼ è¾ï¼ |
| | | }; |
| | | #endif |
| | | |
| | | #endif // TCPDATATYPE_H |