package Peer import ( "bytes" "net" ) const ( Idle = iota Connecting Handshake Connected Failed ) type Peer struct { conn net.Conn Addr net.TCPAddr ID []byte Valid bool Choked bool // remote Interested bool // remote Choking bool // local Intersting bool // local Optimistic bool buf *bytes.Buffer } func NewPeer(addr string) (Peer, error) { a, err := net.ResolveTCPAddr(addr) if err != nil { return Peer{}, err } return Peer{Addr: a, Choked: true, Choking: true} }