为了账号安全,请及时绑定邮箱和手机立即绑定

Go中的Unix套接字

Go中的Unix套接字

Go
qq_遁去的一_1 2021-04-06 13:14:27
我正在尝试制作一个使用Unix套接字的简单回显客户端和服务器。在此示例中,连接似乎是单向的。服务器可以从客户端接收数据,但是不能将数据发回。如果我改用tcp连接,效果很好。有人知道怎么了吗?服务器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 回答

  • 1 回答
  • 0 关注
  • 299 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号