我正在嘗試制作一個(gè)使用Unix套接字的簡(jiǎn)單回顯客戶端和服務(wù)器。在此示例中,連接似乎是單向的。服務(wù)器可以從客戶端接收數(shù)據(jù),但是不能將數(shù)據(jù)發(fā)回。如果我改用tcp連接,效果很好。有人知道怎么了嗎?服務(wù)器package mainimport "net"import "fmt"func echoServer(c net.Conn) { for { buf := make([]byte, 512) nr, err := c.Read(buf) if err != nil { return } data := buf[0:nr] fmt.Printf("Received: %v", string(data)) _, err = c.Write(data) if err != nil { panic("Write: " + err.String()) } }}func main() { l, err := net.Listen("unix", "/tmp/echo.sock") if err != nil { println("listen error", err.String()) return } for { fd, err := l.Accept() if err != nil { println("accept error", err.String()) return } go echoServer(fd) }}客戶package mainimport "net"import "time"func main() { c,err := net.Dial("unix","", "/tmp/echo.sock") if err != nil { panic(err.String()) } for { _,err := c.Write([]byte("hi\n")) if err != nil { println(err.String()) } time.Sleep(1e9) }}
- 1 回答
- 0 關(guān)注
- 264 瀏覽
添加回答
舉報(bào)
0/150
提交
取消