package peer import ( "bytes" "math/big" "net" ) const ( Idle = iota Connecting InHandshake 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 bitField *big.Int // see Bit, SetBit ans Bytes } func NewPeer(addr string) (Peer, error) { a, err := net.ResolveTCPAddr("tcp", addr) if err != nil { return Peer{}, err } return Peer{Addr: a, Choked: true, Choking: true, bitField: new(big.Int)}, nil }