func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
	if !c.ok() {
		return 0, syscall.EINVAL
	}
	return c.writeTo(b, cm, dst)
}
WriteTo writes a payload of the IPv4 datagram, to the destination
address dst through the endpoint c, copying the payload from b. It
returns the number of bytes written. The control message cm allows
the datagram path and the outgoing interface to be specified.
Currently only Darwin and Linux support this. The cm may be nil if
control of the outgoing datagram is not required.
package ipv4
import (
	"net"
	"syscall"
)
func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
	if !c.ok() {
		return 0, nil, nil, syscall.EINVAL
	}
	return c.readFrom(b)
}