From f75a37444e7a97fb58439077eea4d1b3c576bfe3 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期一, 20 七月 2020 11:17:33 +0800 Subject: [PATCH] update --- README.md | 160 ++++++++++++++++++++--------------------------------- 1 files changed, 60 insertions(+), 100 deletions(-) diff --git a/README.md b/README.md index a174f32..327d634 100644 --- a/README.md +++ b/README.md @@ -1,132 +1,92 @@ + ## 瀹炰緥 -``` -#include "shm_queue_wrapper.h" -#include "mm.h" - -typedef struct message_t -{ - char method[20]; - int code; - -} message_t; - -void test1() { - unsigned int i = 0; - int key = 2; + ### 璇锋眰搴旂瓟妯″紡 - size_t qsize = 16; - shmqueue_t queue; - shmqueue_init(&queue, key, qsize, sizeof(message_t)); - message_t item; - // LockFreeQueue<struct Item> queue(16); - for(i = 0; i < qsize; i++) { - sprintf(item.method, "hello"); - item.code = i ; - if(shmqueue_push(&queue, (void *)&item)) { - printf("push:%d %s\n", item.code, item.method ); - } - } - - struct timespec timeout = {1, 0}; - - i = 0; - while((shmqueue_pop_timeout(&queue, (void *)&item, &timeout)) ) { - printf("pop:%d %s\n", item.code, item.method ); - // cout << item.pic << endl; - i++; - } - - shmqueue_destroy(&queue); -} + `source ./demo/server.c` + -int main () { - test1(); - - //鏁翠釜杩涚▼閫�鍑烘椂闇�瑕佹墽琛岃繖涓柟娉曪紝璇ユ柟娉曢鍏堜細妫�鏌ユ槸鍚﹁繕鏈夊叾浠栬繘绋嬪湪浣跨敤璇ュ叡浜唴瀛橈紝濡傛灉杩樻湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ氨鍙槸detach,濡傛灉娌℃湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄩ攢姣佹暣鍧楀唴瀛樸�� - mm_destroy(); - return 0; -} -``` + **杩愯server绔細** + + `./req_req server 8` + + **杩愯client绔細** + 鍙互鎵撳紑澶氫釜client + + `./req_rep client 8` + + 鍦╟lient绔緭鍏ヨ姹備俊鎭紝server 绔洖搴旓紝client绔緭鍑哄洖搴斾俊鎭� + + + ### 鍙戝竷璁㈤槄妯″紡 + + **杩愯server绔細** + + `./pub_sub server 8` + + + **杩愯client绔細** + 鍙互鎵撳紑澶氫釜client + + `./pub_sub client 8` + + 鍦╯erver绔緭鍏ュ彂甯冧俊鎭紝client绔緭鍑烘敹鍒扮殑璁㈤槄淇℃伅 ## 鎺ュ彛璇存槑 - ``` /** - * 鍒濆鍖� - * @ shmqueue - * @ key 鏍囪瘑鍏变韩闃熷垪鐨勫敮涓�key - * @ queue_size 闃熷垪澶у皬 - * @ ele_size 闃熷垪涓厓绱犲ぇ灏� - */ -inline void shmqueue_init(shmqueue_t *shmqueue, int key, int queue_size, int ele_size) { - if(ele_size > MAX_ELE_SIZE) { - err_exit(0, "shmqueue_init 鍏冪礌澶у皬瓒呰繃璁捐鐨勬渶澶уぇ灏�"); - } - SHMQueue<ele_t> *queue = new SHMQueue<ele_t>(key, queue_size); - shmqueue->mqueue = (void *)queue; - shmqueue->ele_size = ele_size; -} - - - -/** - * 閿�姣� + * 鍒涘缓socket + * @return socket鍦板潃 */ -inline void shmqueue_destroy(shmqueue_t *shmqueue) { - delete (SHMQueue<ele_t> *)shmqueue->mqueue; -} +void *mod_open_socket(int mod); /** - * 闃熷垪鍏冪礌鐨勪釜鏁� - */ -inline uint32_t shmqueue_size(shmqueue_t *shmqueue) { - return ((SHMQueue<ele_t> *)(shmqueue->mqueue))->size(); -} + * 鍏抽棴socket +*/ +int mod_close_socket(void * _socket); /** - * 鏄惁宸叉弧 - */ -inline int shmqueue_full(shmqueue_t *shmqueue) { - return ((SHMQueue<ele_t> *)(shmqueue->mqueue))->full(); -} + * 缁戝畾绔彛鍒皊ocket, 濡傛灉涓嶇粦瀹氬垯绯荤粺鑷姩鍒嗛厤涓�涓� + * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 +*/ +int mod_socket_bind(void * _socket, int port); + /** - * 鏄惁涓虹┖ + * 鏈嶅姟绔紑鍚繛鎺ョ洃鍚� + * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 */ -inline int shmqueue_empty(shmqueue_t *shmqueue) { - return ((SHMQueue<ele_t> *)(shmqueue->mqueue))->empty(); -} +int mod_listen(void * _socket); /** - * 鍏ラ槦, 闃熷垪婊℃椂绛夊緟 + * 瀹㈡埛绔彂璧疯繛鎺ヨ姹� */ -inline int shmqueue_push(shmqueue_t *shmqueue, void *src_ele) +int mod_connect(void * _socket, int port); /** - * 鍏ラ槦, 闃熷垪婊℃椂绔嬪嵆杩斿洖 + * 鍙戦�佷俊鎭� + * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 */ -inline int shmqueue_push_nowait(shmqueue_t *shmqueue, void *src_ele) +int mod_send(void * _socket, const void *buf, const int size); /** - * 鍏ラ槦, 鎸囧畾鏃堕棿鍐呭叆闃熶笉鎴愬姛灏辫繑鍥� - */ -inline int shmqueue_push_timeout(shmqueue_t *shmqueue, void *src_ele, struct timespec * timeout) -/** - * 鍑洪槦, 闃熷垪绌烘椂绛夊緟 - */ -inline int shmqueue_pop(shmqueue_t *shmqueue, void *dest_ele) + * 鎺ユ敹淇℃伅 + * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 +*/ +int mod_recv(void * _socket, void **buf, int *size) ; /** - * 鍑洪槦, 闃熷垪绌烘椂绔嬪嵆杩斿洖 + * 閲婃斁鎺ユ敹淇℃伅鐨刡uf */ -inline int shmqueue_pop_nowait(shmqueue_t *shmqueue, void *dest_ele) -/** - * 鍑洪槦, 鎸囧畾鏃堕棿鍐呭嚭闃熶笉鎴愬姛灏辫繑鍥� - */ -inline int shmqueue_pop_timeout(shmqueue_t *shmqueue, void *dest_ele, struct timespec * timeout) +void mod_free(void *buf); + +/** + * 鑾峰彇soket绔彛鍙� + */ +int mod_get_socket_port(void * _socket); ``` + -- Gitblit v1.8.0