vRp.CD2g_test/server/client/uds.go

45 lines
786 B
Go

package client
import (
"net"
)
func NewUnixDomainSocket(addr string) *Client {
return NewClient(&UnixDomainSocket{
addr: addr,
})
}
type UnixDomainSocket struct {
conn net.Conn
addr string
closed bool
}
func (slf *UnixDomainSocket) Run(runState chan<- error, receive func(wst int, packet []byte)) {
dial("unix", slf.addr, runState, receive, func(conn net.Conn) {
slf.conn = conn
}, func() bool {
return slf.closed
})
}
func (slf *UnixDomainSocket) Write(packet *Packet) error {
_, err := slf.conn.Write(packet.data)
return err
}
func (slf *UnixDomainSocket) Close() {
slf.closed = true
}
func (slf *UnixDomainSocket) GetServerAddr() string {
return slf.addr
}
func (slf *UnixDomainSocket) Clone() Core {
return &UnixDomainSocket{
addr: slf.addr,
}
}