资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

go语言unix域套接字发送udp报文

/* server.go */

网站制作、成都做网站服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。创新互联建站把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!

package main

import (
        "fmt"
        "net"
        "os"
)

func checkError(err error) {
        if err != nil {
                fmt.Printf("Error: %s\n", err.Error())
                os.Exit(1)
        }
}

func recvUnixMsg(conn *net.UnixConn) {
        var buf [20]byte

        n, raddr, err := conn.ReadFromUnix(buf[0:])
        fmt.Println(raddr)
        if err != nil {
                return
        }

        fmt.Println("msg is ", string(buf[0:n]))
        _, err = conn.WriteToUnix([]byte("nice to see u"), raddr)
        checkError(err)
}

func main() {
        laddr, err := net.ResolveUnixAddr("unixgram", "/tmp/unix_gram_sock")
        checkError(err)

        conn, err := net.ListenUnixgram("unixgram", laddr)
        checkError(err)

        recvUnixMsg(conn)
}

/* client.so */

package main

import (
        "fmt"
        "net"
        "os"
)

func checkError(err error) {
        if err != nil {
                fmt.Printf("Error: %s\n", err.Error())
                os.Exit(1)
        }
}

func main() {
        raddr, err := net.ResolveUnixAddr("unixgram", "/tmp/unix_gram_sock")
        checkError(err)

        laddr, err := net.ResolveUnixAddr("unixgram", "/tmp/unix_gram_sock_cli")
        checkError(err)

        conn, err := net.DialUnix("unixgram", laddr, raddr)
        checkError(err)

        defer conn.Close()
        if err != nil {
                os.Exit(1)
        }

        n, err := conn.Write([]byte("Hello world"))

        fmt.Printf("send msg n:%d\n", n)

        var msg [20]byte
        conn.Read(msg[0:])

        fmt.Println("msg is", string(msg[0:10]))
}


当前名称:go语言unix域套接字发送udp报文
URL分享:http://www.cdkjz.cn/article/pcsjie.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220