func WithClientAddrPort(addr string, port int) Config {
	return func(config *config) {
		config.clientAddr = addr
		config.clientPort = port
	}
}
WithClientAddrPort adds a ClientAddr and ClientPort to the configuration
package members
import (
	"io"
	"time"
)
type config struct {
	peerType         PeerType
	nodeName         string
	daemonAddress    string
	daemonNonce      string
	bindAddr         string
	bindPort         int
	advertiseAddr    string
	advertisePort    int
	clientAddr       string
	clientPort       int
	logOutput        io.Writer
	broadcastTimeout time.Duration
}
type Config func(*config)
func WithPeerType(peerType PeerType) Config {
	return func(config *config) {
		config.peerType = peerType
	}
}
func WithNodeName(nodeName string) Config {
	return func(config *config) {
		config.nodeName = nodeName
	}
}
func WithDaemon(address, nonce string) Config {
	return func(config *config) {
		config.daemonAddress = address
		config.daemonNonce = nonce
	}
}
func WithBindAddrPort(addr string, port int) Config {
	return func(config *config) {
		config.bindAddr = addr
		config.bindPort = port
	}
}
func WithAdvertiseAddrPort(addr string, port int) Config {
	return func(config *config) {
		config.advertiseAddr = addr
		config.advertisePort = port
	}
}