iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >使用 os.OpenFile() 代替 net.Listen()
  • 857
分享到

使用 os.OpenFile() 代替 net.Listen()

2024-04-04 23:04:16 857人浏览 独家记忆
摘要

学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《使用 os.OpenFile() 代替 net.Listen()》,以下内容主要包含等知识点,如果你正在学习或准备学习golang,就都

学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《使用 os.OpenFile() 代替 net.Listen()》,以下内容主要包含等知识点,如果你正在学习或准备学习golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我深入研究了 os.openfilenet.listen 的调用堆栈,看看是否可以使用 os.openfile 创建 unix 域套接字。以下是我的尝试。但是,在跟踪两个调用堆栈(os.openfilenet.listen )之后,我仍然感到困惑。显然,下面的代码不会从文件中读取数据,而是将数据存储到文件系统中。

  1. 如何使用 os.openfile 实现 unix 域套接字?
  2. 如果 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)
}


解决方案


  1. 没有。 OpenFile 是用于打开文件的通用 api,如果您想使用 unix 套接字,请使用 net.Listen("unixpacket", "f.sock")net.Dial("unixpacket", "f.sock")

  2. os.ModeSocket 只是 *nix 为套接字 fd 注册的标志,当您想要过滤 fd 类型时使用

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~

您可能感兴趣的文档:

--结束END--

本文标题: 使用 os.OpenFile() 代替 net.Listen()

本文链接: https://www.lsjlt.com/news/596057.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用 os.OpenFile() 代替 net.Listen()
    学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《使用 os.OpenFile() 代替 net.Listen()》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都...
    99+
    2024-04-04
  • python如何使用in代替or
    这篇文章主要为大家展示了“python如何使用in代替or”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何使用in代替or”这篇文章吧。in 代替...
    99+
    2024-04-02
  • java如何使用clone()代替new
    这篇文章主要为大家展示了“java如何使用clone()代替new”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何使用clone()代替new”这篇文章吧。使用clone()代替new...
    99+
    2023-06-27
  • 怎么使用systemd timer替代cronjob
    今天小编给大家分享一下怎么使用systemd timer替代cronjob的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-05
  • 如何使用@AllArgsConstructor和final 代替 @Autowired
    目录@AllArgsConstructor和final 代替 @Autowiredspring代替 @Autowired(lombok相关注解)注解遇到坑@AllArgsConstr...
    99+
    2024-04-02
  • GoGenerate代替Makefile使用方法详解
    目录介绍MockeryGo Generate用法总结介绍 图灵完备性(Turing completeness)是通用计算机的一个属性,它表示一个程序可以写另一个程序。比如 go t...
    99+
    2022-12-15
    Go Generate代替Makefile Go Generate
  • 使用java代码代替xml实现SSM教程
    目录1.在IDEA中创建一个普通的maven项目2.添加Spring配置3.添加SpringMVC配置5.测试5.1创建HelloController类5.2创建HelloContr...
    99+
    2024-04-02
  • 如何使用java代码代替xml实现SSM
    本篇内容介绍了“如何使用java代码代替xml实现SSM”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SpringBoot推荐开发者使用Ja...
    99+
    2023-06-21
  • 详解推荐使用systemd timer替代cronjob
    目录概述系统自带的 timer创建 timerSystemd timer 时间精度Timer 类型Calendar event 定义测试 calendar 定义总结概述 前几天在使用...
    99+
    2023-05-14
    systemd timer替代cronjob systemd timer
  • 你需要使用Spring MVC代替PHP吗?
    随着互联网技术的发展,现在的Web应用程序已经越来越复杂,需要更加高效、稳定、可靠的框架来支持。在Web开发中,PHP一直是一个很受欢迎的语言,但是随着Java技术的发展,Spring MVC作为一种优秀的Web开发框架,是否可以取代PHP...
    99+
    2023-11-10
    http apache spring
  • react app rewrited替代品craco使用示例
    目录1. 不使用custom-cra的原因2. craco基本使用3. 使用craco修改antd主题4. 别名5. babel扩展6. 分包7. 配置代理8. 最后1. 不使用cu...
    99+
    2022-11-13
    craco替代react app rewrited react app rewrited
  • 使用CSS3来代替JS实现交互
    这篇文章给大家分享的是有关使用CSS3来代替JS实现交互的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。【CSS3和JS】对于CSS了解的同学都知道,CSS的实现是最底层的,在实现方式和性能上都不是,JS这种提供接...
    99+
    2023-06-08
  • Vue状态管理之使用Pinia代替Vuex
    目录1、Pinia是什么2、Pinia简单上手3、使用体验1、Pinia是什么 Pinia是一个vue的状态管理方案,是vuex团队成员开发,实现了很多vuex5的提案,更加地轻量化...
    99+
    2024-04-02
  • https中使用//代替http://有哪些好处
    这篇文章主要为大家展示了“https中使用//代替http://有哪些好处”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“https中使用//代替http://有哪些好处”这篇文章吧。//缺省协议...
    99+
    2023-06-08
  • python如何使用生成器代替列表
    小编给大家分享一下python如何使用生成器代替列表,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!尽量使用生成器代替列表##不推...
    99+
    2024-04-02
  • SpringCloud Feign使用ApacheHttpClient代替默认client方式
    目录使用ApacheHttpClient代替默认clientApacheHttpClient和默认实现的比较ApacheHttpClient使用apache的HttpClient默认...
    99+
    2024-04-02
  • Vue如何使用对象代替if及switch
    这篇文章主要介绍了Vue如何使用对象代替if及switch,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用对象代替 if 及 switch...
    99+
    2024-04-02
  • 如何用LiveDataBus替代RxBus
    这篇文章将为大家详细讲解有关如何用LiveDataBus替代RxBus,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。对于Android系统来说,消息传递是最基本的组件,每一个App内的不同页...
    99+
    2023-06-05
  • 怎么用SQL代替DSL
    这篇文章主要为大家展示了“怎么用SQL代替DSL”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用SQL代替DSL”这篇文章吧。SQL REST API在Kibana Console中输入:P...
    99+
    2023-06-27
  • 如何使用vimdiff代替svn diff的查看代码工具
    这篇文章给大家分享的是有关如何使用vimdiff代替svn diff的查看代码工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在linux下,直接使用svn diff命令查看代码的修改是很吃力的,于是在网上搜索...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作