From baa6fb17d950c4f5684f5d798f90595456723418 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期二, 28 七月 2020 16:16:46 +0800
Subject: [PATCH] conflict

---
 README.md |  310 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 197 insertions(+), 113 deletions(-)

diff --git a/README.md b/README.md
index 4193faf..ba8d825 100644
--- a/README.md
+++ b/README.md
@@ -1,121 +1,205 @@
-<<<<<<< HEAD
-## 瀹炰緥
+ 
+# 1. 瀹炰緥
+浠ヤ笅瀹炰緥浠g爜鍦╜demo`鏂囦欢澶逛笅
+## 1.1 Bus妯″紡
+**Source**  
+
+`dgram_mod_bus.c`
+
+**缂栬瘧**  
+
+瀹夎濂絪o鍖呭悗锛岀敤濡備笅鐨勬柟寮忕紪璇戯紝shm_queue鏄�氫俊闃熷垪鍖咃紝usgcommon鏄叕鍏卞寘锛宲thread鏄郴缁熺殑绾跨▼鍖�
+`g++ dgram_mod_bus.c -mcx16 -std=c++11 -lshm_queue -lusgcommon -lpthread`
+
+**婕旂ず** 
+
+鍚姩bus `./dgram_mod_bus server 8`銆傜劧鍚庢墦寮�涓や釜瀹㈡埛绔繛鎺us锛� 绗竴涓鎴风璁㈤槄 "news", 绗簩涓鎴风鍙戝竷 "news". 绗竴涓鎴风浼氭敹鍒扮浜屼釜瀹㈡埛绔帹閫佺殑淇℃伅銆�
+
+鍚姩bus
+```
+$  ./dgram_mod_bus server 8
+```
+
+绗竴涓鎴风璁㈤槄 "news"
+```
+
+$ ./dgram_mod_bus client 8
+Can I help you? sub, pub or quit
+sub
+Please input topic!
+news
+Sub success!
+Can I help you? sub, pub or quit
+鏀跺埌璁㈤槄娑堟伅:111111111111111111111
+
+ ```
+绗簩涓鎴风鍙戝竷 "news"
+ ```
+$  ./dgram_mod_bus client 8
+Can I help you? sub, pub or quit
+pub
+Please input topic and content
+news 111111111111111111111
+Pub success!
+Can I help you? sub, pub or quit
+
+ ```
+杩欓噷鍙互鎵撳紑璁稿涓鎴风鍙戝竷鍜岃闃呮秷鎭��
+ 
+
+## 1.2 req_rep妯″紡, 閫傚簲浜庢敞鍐�
+ 
+**Source** `dgram_mod_req_rep.c`
+
+**缂栬瘧** 鍚屼笂
+
+**婕旂ず**
 
 ```
-#include "shm_queue_wrapper.h"
-#include "mm.h"
+## 鍚姩娉ㄥ唽涓績
+./dgram_mod_req_rep server 2 & node0=$! && sleep 1
+## 鍚戞敞鍐屼腑蹇冨彂閫佹秷鎭�
+./dgram_mod_req_rep client 2 node1
+kill $node0
+```
 
-typedef struct message_t
-{
-	char method[20];
-	int code;
-	
-} message_t;
+## survey妯″紡锛� 閫傚簲浜庡績璺�
+**Source** `dgram_mod_survey.c`
 
-void test1() {
-	unsigned int i = 0;
-	int key = 2;
- 	// 
-	size_t qsize = 16;
-	void * queue = shmqueue_init( 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++;
-	}
+**婕旂ず**
+鍚姩蹇冭烦涓績
+```
+$ ./dgram_mod_survey server 3
 
-	//閿�姣侀槦鍒�
-	shmqueue_destroy(queue);
-}
+RECEIVED HREARTBEAT FROM 1000: 0
+RECEIVED HREARTBEAT FROM 1000: 1
+RECEIVED HREARTBEAT FROM 1000: 2
+RECEIVED HREARTBEAT FROM 1000: 3
+RECEIVED HREARTBEAT FROM 1000: 4
+RECEIVED HREARTBEAT FROM 1000: 5
+RECEIVED HREARTBEAT FROM 1000: 6
+RECEIVED HREARTBEAT FROM 1000: 7
+RECEIVED HREARTBEAT FROM 1000: 8
+RECEIVED HREARTBEAT FROM 1000: 9
+
+```
+
+鎵撳紑涓�涓鎴风锛岃繛鎺ュ績璺充腑蹇�
+```
+$ ./dgram_mod_survey client 3
+
+SEND HEART:0
+SEND HEART:1
+SEND HEART:2
+SEND HEART:3
+SEND HEART:4
+SEND HEART:5
+SEND HEART:6
+SEND HEART:7
+SEND HEART:8
+SEND HEART:9
+
+```
+ 
+
+# 2. 鎺ュ彛璇存槑
+
+shm_mm.h
+```
+/**
+ * 鍒濆鍖栧叡浜唴瀛�
+ * @size 鍏变韩鍐呭瓨澶у皬, 鍗曚綅M
+ * 
+ */
+void shm_init(int size);
+
+/**
+ * 閿�姣佸叡浜唴瀛�
+ * 鏁翠釜杩涚▼閫�鍑烘椂闇�瑕佹墽琛岃繖涓柟娉曪紝璇ユ柟娉曢鍏堜細妫�鏌ユ槸鍚﹁繕鏈夊叾浠栬繘绋嬪湪浣跨敤璇ュ叡浜唴瀛橈紝濡傛灉杩樻湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ氨鍙槸detach,濡傛灉娌℃湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ垯閿�姣佹暣鍧楀唴瀛樸��
+ */
+void shm_destroy();
+```
+
+dgram_mod_socket.h
+```
+
+/**
+ * 鍒涘缓socket
+ * @return socket鍦板潃
+*/
+void *dgram_mod_open_socket();
+
+/**
+ * 鍏抽棴socket
+ * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜
+*/
+int dgram_mod_close_socket(void * _socket);
+
+/**
+ * 缁戝畾绔彛鍒皊ocket, 濡傛灉涓嶇粦瀹氬垯绯荤粺鑷姩鍒嗛厤涓�涓�
+ * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜
+*/
+int dgram_mod_bind(void * _socket, int port);
+
+/**
+ * 鍙戦�佷俊鎭�
+ * @port 鍙戦�佺粰璋�
+ * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜
+ */
+int dgram_mod_sendto(void *_socket, const void *buf, const int size, const int port);
+
+
+/**
+ * 鎺ユ敹淇℃伅
+ * @port 浠庤皝鍝噷鏀跺埌鐨勪俊鎭�
+ * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜
+*/
+int dgram_mod_recvfrom(void *_socket, void **buf, int *size, int *port);
+
+/**
+ * 鍙戦�佽姹備俊鎭苟绛夊緟鎺ユ敹搴旂瓟
+ * @port 鍙戦�佺粰璋�
+ * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜
+*/
+int dgram_mod_sendandrecv(void * _socket, const void *send_buf, const int send_size, const int port, void **recv_buf, int *recv_size) ;
+
+
+/**
+ * 鍚姩bus
+ * 
+ * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜
+*/
+int  dgram_mod_start_bus(void * _socket);
+
+/**
+ * 璁㈤槄鎸囧畾涓婚
+ * @topic 涓婚
+ * @size 涓婚闀垮害
+ * @port 鎬荤嚎绔彛
+ */
+int  dgram_mod_sub(void * _socket, void *topic, int size, int port);
+
+/**
+ * 鍙戝竷涓婚
+ * @topic 涓婚
+ * @content 涓婚鍐呭
+ * @port 鎬荤嚎绔彛
+ */
+int  dgram_mod_pub(void * _socket, void *topic, int topic_size, void *content, int content_size, int port);
+
+
+/**
+ * 鑾峰彇soket绔彛鍙�
+ */
+int dgram_mod_get_port(void * _socket) ;
+
+
+/**
+ * 閲婃斁瀛樺偍鎺ユ敹淇℃伅鐨刡uf
+ */
+void dgram_mod_free(void *buf) ;
+```
 
  
-int main () {
-	test1();
-
-	//鏁翠釜杩涚▼閫�鍑烘椂闇�瑕佹墽琛岃繖涓柟娉曪紝璇ユ柟娉曢鍏堜細妫�鏌ユ槸鍚﹁繕鏈夊叾浠栬繘绋嬪湪浣跨敤璇ュ叡浜唴瀛橈紝濡傛灉杩樻湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ氨鍙槸detach,濡傛灉娌℃湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ垯閿�姣佹暣鍧楀唴瀛樸��
-	mm_destroy();
-	return 0;
-}
-```
-
-## 鎺ュ彛璇存槑
-
-```
-
-
-/**
- * 鍒濆鍖�
- * @ shmqueue 
- * @ key 鏍囪瘑鍏变韩闃熷垪鐨勫敮涓�key
- * @ queue_size 闃熷垪澶у皬 , 杩欎釜鍊煎繀椤绘槸2鐨勬寚鏁板嵆 1, 2, 4, 8, 16 绛�
- * @ ele_size 闃熷垪涓厓绱犲ぇ灏�, 杩欎釜鍊间笉鑳借秴杩�512锛屽綋鐒跺鏋滈渶瑕佸彲浠ヨ皟鏁磋繖涓渶澶ч檺鍒�
- */
-void* shmqueue_init(int key, int queue_size, int ele_size);
-/**
- * 閿�姣�
-*/
-void shmqueue_destroy(void *shmqueue);
-/**
- * 闃熷垪鍏冪礌鐨勪釜鏁�
- */
-uint32_t shmqueue_size(void *shmqueue);
-/**
- * 鏄惁宸叉弧
- */
-int shmqueue_full(void *shmqueue);
-
-/**
- * 鏄惁涓虹┖
- */
-int shmqueue_empty(void *shmqueue);
-
-/**
- * 鍏ラ槦, 闃熷垪婊℃椂绛夊緟
- */
-int shmqueue_push(void *shmqueue, void *src_ele);
-
-/**
- * 鍏ラ槦, 闃熷垪婊℃椂绔嬪嵆杩斿洖
- */
-int shmqueue_push_nowait(void *shmqueue, void *src_ele);
-
-/**
- * 鍏ラ槦, 鎸囧畾鏃堕棿鍐呭叆闃熶笉鎴愬姛灏辫繑鍥�
- */
-int shmqueue_push_timeout(void *shmqueue, void *src_ele, struct timespec * timeout);
-
-/**
- * 鍑洪槦, 闃熷垪绌烘椂绛夊緟
- */
-int shmqueue_pop(void *shmqueue, void *dest_ele);
-
-/**
- * 鍑洪槦, 闃熷垪绌烘椂绔嬪嵆杩斿洖
- */
-int shmqueue_pop_nowait(void *shmqueue, void *dest_ele);
-
-/**
- * 鍑洪槦, 鎸囧畾鏃堕棿鍐呭嚭闃熶笉鎴愬姛灏辫繑鍥�
- */
-int shmqueue_pop_timeout(void *shmqueue, void *dest_ele, struct timespec * timeout);
-
-```
-=======
-## softbus
-
-shm鐨勯�氳搴�
->>>>>>> dd08a8134dea74ac30213c1b8580bff34ee7095b
-

--
Gitblit v1.8.0