|
|
@@ -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() {
|