Jelajahi Sumber

实现了readLoop

skyfffire 2 tahun lalu
induk
melakukan
3e25e167d4
1 mengubah file dengan 22 tambahan dan 1 penghapusan
  1. 22 1
      p2p/peer.go

+ 22 - 1
p2p/peer.go

@@ -4,6 +4,7 @@ import (
 	"blockchain-go/common/mclock"
 	"blockchain-go/p2p/enode"
 	"errors"
+	"fmt"
 	"net"
 	"sort"
 	"sync"
@@ -172,7 +173,27 @@ loop:
 func (p *Peer) readLoop(errc chan<- error) {
 	defer p.wg.Done()
 
-	// TODO 实现readLoop
+	for {
+		msg, err := p.rw.ReadMsg()
+		if err != nil {
+			errc <- err
+			return
+		}
+
+		msg.ReceivedAt = time.Now()
+		if err = p.handle(msg); err != nil {
+			errc <- err
+			return
+		}
+	}
+}
+
+func (p *Peer) handle(msg Msg) error {
+	fmt.Printf("msg: %v\n", msg)
+
+	// TODO 实现handle
+
+	return nil
 }
 
 func (p *Peer) pingLoop() {