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报文
文章位置:http://ybzwz.com/article/pcsjie.html