Я погрузился в стек вызовов os.OpenFile
и net.Listen
, чтобы посмотреть, смогу ли я создать сокет домена UNIX, используя os.OpenFile
. Ниже моя попытка. Но после отслеживания обоих стеков вызовов (os.OpenFile
и net.Listen
) я все еще в замешательстве. Приведенный ниже код, по-видимому, не читает файл и сохраняет данные в файловой системе.
- Как реализовать сокет домена UNIX, используя
os.OpenFile
?
- Какова цель
os.ModeSocket
, если она не используется с os.OpenFile
для создания сокета UNIX?
package main
import (
"fmt"
"log"
"os"
)
func main() {
sock, err := os.OpenFile("f.sock", os.O_RDWR|os.O_CREATE, os.ModeSocket|os.ModePerm)
defer sock.Close()
if err != nil {
log.Panic(err)
}
n, err := sock.WriteString("hello\n")
if err != nil {
fmt.Println(err)
} else {
fmt.Println(n)
}
b := make([]byte, 10)
n, err = sock.Read(b)
fmt.Println(n)
if err != nil {
fmt.Println("error reading: ", err)
}
fmt.Println(b)
}