From 57e6102fc10909d6e13a4efe463a915c0e47e2ab Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期四, 20 八月 2020 14:21:13 +0800
Subject: [PATCH] bug fixed

---
 library.go |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/library.go b/library.go
index 9237992..9323982 100644
--- a/library.go
+++ b/library.go
@@ -66,7 +66,12 @@
 	chReply chan TransInfo
 }
 
-func recvRoutine(ctx context.Context, sock *DgramSocket, wg *sync.WaitGroup, ch chan<- TransInfo) {
+const (
+	routineSub   = "sub"
+	routineReply = "reply"
+)
+
+func recvRoutine(ctx context.Context, sock *DgramSocket, wg *sync.WaitGroup, ch chan<- TransInfo, id string) {
 	for {
 		select {
 		case <-ctx.Done():
@@ -80,6 +85,10 @@
 						info: &info,
 						port: peer,
 					}
+
+					// if id == routineReply {
+					// 	fmt.Println("repley server recv:", info)
+					// }
 				}
 			} else {
 				// time.Sleep(10 * time.Millisecond)
@@ -152,7 +161,7 @@
 	// 鍚姩鎺ユ敹绾跨▼
 
 	wg.Add(1)
-	go recvRoutine(ctx, sockReply, wg, chSub)
+	go recvRoutine(ctx, sockReply, wg, chReply, routineReply)
 	repS := &sockServer{
 		sock: sockReply,
 		info: info.ProcInfo,
@@ -179,7 +188,7 @@
 	}
 	// 鍚姩鎺ユ敹绾跨▼
 	wg.Add(1)
-	go recvRoutine(ctx, sockSub, wg, chSub)
+	go recvRoutine(ctx, sockSub, wg, chSub, routineSub)
 	subC := &sockClient{
 		sock: sockSub,
 		peer: -1,
@@ -360,6 +369,11 @@
 						return nil
 					}
 				}
+			} else {
+				try++
+				if try > count {
+					return nil
+				}
 			}
 		}
 	}

--
Gitblit v1.8.0