func (i IO) Close() error {
	return syscall.Close(i.fd)
}
Close closes the IO
package protocol
import "syscall"
type IO struct {
	fd int
}
func NewIO(fd int) *IO {
	return &IO{fd}
}
func (i IO) Read(buf []byte) (n int, err error) {
	n, err = syscall.Read(i.fd, buf)
	if err != nil {
		n = 0
	}
	return
}
func (i IO) Write(buf []byte) (n int, err error) {
	n, err = syscall.Write(i.fd, buf)
	if err != nil {
		n = 0
	}
	return
}