学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《使用 os.OpenFile() 代替 net.Listen()》,以下内容主要包含等知识点,如果你正在学习或准备学习golang,就都
学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《使用 os.OpenFile() 代替 net.Listen()》,以下内容主要包含等知识点,如果你正在学习或准备学习golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!
问题内容我深入研究了 os.openfile
和 net.listen
的调用堆栈,看看是否可以使用 os.openfile
创建 unix 域套接字。以下是我的尝试。但是,在跟踪两个调用堆栈(os.openfile
和 net.listen
)之后,我仍然感到困惑。显然,下面的代码不会从文件中读取数据,而是将数据存储到文件系统中。
os.openfile
实现 unix 域套接字? 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)
}
没有。 OpenFile
是用于打开文件的通用 api,如果您想使用 unix 套接字,请使用 net.Listen("unixpacket", "f.sock")
或 net.Dial("unixpacket", "f.sock")
p>
os.ModeSocket
只是 *nix 为套接字 fd 注册的标志,当您想要过滤 fd 类型时使用
今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~
--结束END--
本文标题: 使用 os.OpenFile() 代替 net.Listen()
本文链接: https://www.lsjlt.com/news/596057.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0