收听“0.0.0.0:80”和“:80”有什么区别?

2023-12-21

当我们使用http.ListenAndServe https://golang.org/pkg/net/http/#ListenAndServe,有什么区别:

http.ListenAndServe("0.0.0.0:80", nil)

and

http.ListenAndServe(":80", nil)

?两个版本不会监听端口上的所有接口吗80?


The http.ListenAndServe() https://golang.org/pkg/net/http/#ListenAndServe函数最终调用net.Listen() https://golang.org/pkg/net/#Listen。的文档net.Listen声明它将绑定到提供给它的网络:

对于 TCP 网络,如果地址参数中的主机为空或字面上未指定的 IP 地址,则 Listen 将侦听本地系统的所有可用单播和任播 IP 地址。要仅使用 IPv4,请使用网络“tcp4”。

然而,查看源码http.ListenAndServe() https://golang.org/src/net/http/server.go?s=83053:83087#L2702我们可以看到它指定了"tcp"作为网络而不是"tcp4"。因此,示例代码中的调用应导致相同的行为,即两个调用应绑定到所有可用接口。然而,进一步深入研究 golang 源代码,我们最终会发现internetAddrList() https://golang.org/src/net/ipsock.go#L235我们可以看到它区分了空host值和指定了 ipv4 地址的值。因此,golang 实际上将指定的 ipv4 地址视为仅绑定在该接口上的指示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

收听“0.0.0.0:80”和“:80”有什么区别? 的相关文章

  • 如何修复“缺少表的 FROM 子句条目”错误

    我正在尝试根据游戏 ID 获取平台名称 我有如下三个表 我正在尝试加入它们以获得所需的结果 Games Id 1 2 3 4 Game Platforms Id game id platform id 1 1 1 2 1 2 3 3 3
  • 为什么 gmail API 以纯文本形式发送 html 电子邮件?

    我正在尝试使用 gmail API 发送 html 电子邮件 但由于某些原因 它会随机以纯文本 文本形式发送电子邮件 谷歌似乎改变了我设置的内容类型标头 这有什么理由吗 电子邮件内容始终完全相同 正如我测试的那样 API 仍处于实验阶段吗
  • 在 Go to 函数中通过引用和值传递

    我对 Go 中通过引用和值传递有点困惑 我已经看到过对类型前面的 的解释 在类型名称前面 表示声明的变量将存储该类型的另一个变量的地址 而不是该类型的值 类型 这对我来说毫无意义 在Java中 如果我将数据库实例传递给函数 我会这样做 da
  • nginx上传client_max_body_size问题

    我正在运行 nginx ruby on rails 并且有一个简单的多部分表单来上传文件 一切正常 直到我决定限制要上传的文件的最大大小 为此 我设置了 nginxclient max body size to 1m 1MB 并且当该规则被
  • 如何查看点击 HTML 按钮时发出的 POST 请求的地址?

    我正在创建一个涉及网络抓取和网络自动化的项目 我想首先提交此表格 http rgsntl rgs cuhk edu hk rws prd applx2 Public tt dsp timetable aspx http rgsntl rgs
  • Zoopla 沙箱出现 cURL http 标头错误

    我正在为房地产经纪人开发代码 以通过他们的数据源将房产上传到 Zoopla 我在将所需的配置文件添加到所需的 http 标头时遇到问题 文档中唯一的示例是来自 Linux 的测试 echo branch reference test cur
  • 使用 mgo 驱动程序进行 mongo 聚合查询

    我在 mongodb 中有以下查询 db devices aggregate match userId v73TuQqZykbxFXsWo state true project userId 1 categorySlug 1 weight
  • Golang 结构体初始化

    有一个像这样的简单结构 type Event struct Id int Name string 这两种初始化方法有什么区别呢 e1 Event Id 1 Name event 1 e2 Event Id 2 Name event 2 为什
  • 有没有办法间歇性地执行重复性任务?

    有没有办法在 Go 中执行重复的后台任务 我在想类似的事情Timer schedule task delay period 在爪哇 我知道我可以用 goroutine 来做到这一点Time sleep 但我想要一些容易停止的东西 这是我得到
  • 无效数据的 REST 响应代码

    如果出现以下情况 应将什么响应代码传递给客户端 用户注册时传递了无效数据 例如电子邮件格式错误 用户名 电子邮件已存在 我选择了403 我还发现了以下我觉得可以用的 维基百科 412 前提条件失败 服务器不满足请求者要求的先决条件之一 提出
  • container_memory_working_set_bytes 与 process_resident_memory_bytes 和total_rss 之间的关系

    我希望了解以下关系 容器内存工作集字节 vs 进程驻留内存字节 vs 总计RSS 容器内存 rss 文件映射以便更好地配备OOM可能性警报系统 这似乎违背了我的理解 这让我现在感到困惑 如果容器 pod 运行单个进程 执行用 Go 编写的编
  • Apache HttpClient TCP Keep-Alive(套接字保持活动)

    我的 http 请求需要太多时间才能被服务器处理 大约 5 分钟 由于连接闲置 5 分钟 代理服务器将关闭连接 我正在尝试在 Apache DefaultHttpClient 中使用 TCP Keep Alive 来使连接长时间处于活动状态
  • 在Linux中的端口80上运行flask[重复]

    这个问题在这里已经有答案了 也许以前有过这个问题的答案 所以请重定向我 如果是这样的话 我正在考虑在端口 80 上运行 Flask 所以我检查了是否有任何东西正在使用端口 80 因为事实证明端口 80 没有运行 所以当我输入以下内容时 if
  • 如何找出数据包的HTTP头长度?

    我知道如何手动执行此操作 通过查看十六进制转储 我怎样才能自动获得相同的信息 我必须使用 API 吗 我有wireshark 和Microsoft 网络监视器 这可以通过简单地实现Lua解析器 http wiki wireshark org
  • eBay API 调用不适用于 UPC/EAN

    eBay 的 API findItemsByProduct 操作适用于 UPC 和 EAN 但不幸的是它不起作用 例如 下面的 HTTP GET 请求会抛出 无效的产品 ID 值 错误41 Note 请将 SECURITY APPNAME
  • 如何拥有在标准输出上更新的就地字符串

    我想输出到标准输出并让输出 覆盖 以前的输出 例如 如果我输出On 1 10 我想要下一个输出On 2 10覆盖On 1 10 我怎样才能做到这一点 stdout是一个流 io Writer 您无法修改已写入其中的内容 什么can更改的是该
  • 为什么http使用CRLF作为行分隔符?

    据我所知 使用LF因为行分隔符非常流行 但我想知道为什么许多文本协议 如 HTTP FTP 使用CRLF作为它的行分隔符 我不认为这些协议是为旧打字机发明的 那么这有什么历史原因吗 我尝试通过谷歌 stackoverflow 和维基百科搜索
  • 如何防止 Firefox 缓存

    我尝试了很多可能的解决方案 但无法解决问题 这些不起作用 有人可以帮忙吗 我正在使用jsp servlet application 是websphere Portal 6 1 的一个portlet 切勿
  • 使用:text/plain; 有什么缺点吗?字符集=“UTF-8”

    我的网络服务器提供的内容在 95 的情况下只是简单的 ascii 但在极少数情况下 内容包含一些德语非 ASCII 字符 现在我可以设置content type通过检测内容是否包含任何非 ASCII 字符来响应标头 或者我可以始终设置响应标
  • 关于编写惯用的 Golang 的建议

    我正在掌握 Golang 的做事方式 首先是一些示例代码 package main import log os func logIt s string f os OpenFile errors log os O RDWR os O CREA

随机推荐

  • 通过 JavaScript 添加列表项

    因此 我试图打印一个数组 将用户输入文本添加到其中 但我想要打印的是数组的有序列表 正如您所看到的 如果您运行我的代码 列表项只是不断将用户输入添加到其中 并且不会添加带有人员姓名的新列表项 下面是代码 First name
  • 在 Mule Flows 中使用 SOAP 配置 HTTP 端点

    我正在尝试使用 Mule Flows 在 Mule 中配置现有的 SOAP Web 服务 我有一个带有请求 响应的 HTTP 端点和一个 SOAP 组件 例如服务 A I want to configure this setup for a
  • Eclipse 中的 RemoteSystemsTempFiles 是什么?

    我注意到我有一个名为 RemoteSystemTempFiles 的项目 但我从未创建过 谷歌搜索后 它似乎是 Eclipse 上的插件功能 但没有任何其他想法 任何人都可以给我一个更好的想法 我可以做什么并对这个文件夹进行一些解释吗 而且
  • Dockerfile:将 RUN 指令输出到变量中

    我正在编写一个 dockerfile 并希望将 ls 命令的输出放入变量中 如下所示 file ls tmp dir 这里 dir 里面只有一个文件 dockerfile 中的以下 RUN 指令不起作用 RUN file ls tmp di
  • Elasticsearch 查询方面的问题

    当向我的查询添加一个术语而不是过滤器时 我得到 0 个方面 仅供参考 我正在将轮胎宝石与 Ruby 一起使用 这是我的模型代码及其映射 class Property lt ActiveRecord Base include Tire Mod
  • 有没有办法保留 Volley 请求直到响应完成

    与过去使用 AsyncTask 时一样 我们有两个方法 doInBackground 来完成所有工作 onPostExecute 在所有数据返回完成时进行更改 因此我可以停止所有代码 直到正确的数据返回 然后用这些数据执行我需要的操作 但是
  • C程序执行速度

    我在编程语言校长科目考试时遇到了一道问题 想了很久还是没明白问题所在 问题 下面是一个C程序 在配置 CPU Intel 1 8GHz Ram 512MB的PC上的MSVC 6 0环境中执行 define M 10000 define N
  • 如何在ReactJs中正确使用shouldComponentUpdate()和componentWIllUpdate()方法?

    在我从 redux 获取数据后使用 componentWillReceiveProps 更新组件本地对象之前 componentWillReceiveProps nextProps if nextProps editUser nextPro
  • 从 JSON 列计算平均值

    我有一个表 其中包含一列 JSON 数据 我想从中提取信息 具体来说 我只想得到平均值 我所拥有的示例 id speed data 391982 speed 1 3 speed 1 3 speed 1 4 speed 1 5 391983
  • 是否有任何直觉可以理解 Monad 中的连接两个函数?

    join被定义为bind将组合数据结构扁平化为单一结构 从类型系统的角度来看 7 Num a gt a gt a可以被认为是Functor Num a gt a gt a gt a可以被认为是Functor of Functor 如何获得一
  • 为什么带波浪号的有效路径在此 cron 作业中没有扩展? [复制]

    这个问题在这里已经有答案了 我的 crontab 中有以下几行 PY home schemelab install miniconda bin python ST prg surgetrader SURGE TRADER 00 cd ST
  • StringContent - mediaType 参数

    有谁知道 mediaType 参数的用途StringContent的构造函数 其 MSDN 页面上未列出任何内容 哇 是的msdn文档 https learn microsoft com en us dotnet api system ne
  • 如何“永久”删除 Mlflow 中的实验?

    永久删除实验没有记录在任何地方 我正在使用 Mlflow 和后端 postgres db 这是我运行过的 client MlflowClient tracking uri server client delete experiment 1
  • 使用 jsonb_set() 有条件更新

    我在 Postgres 11 3 数据库中有一个表 其中包含jsonb column 尝试更新嵌套数组名称内的所有对象 iProps 如果路径 iProps gt value gt rules gt ao gt sc 是一个对象 那么路径应
  • AVAudioRecorder 和 wav 音频文件的音频数据文件偏移量

    wav 文件 afinfo 命令给出音频数据偏移量为 4096 有没有办法使用 AVFoundation 在 macOS 或 iOS 上将数据偏移量更改为 44 我的设置如下 func exportSettings gt Dictionar
  • Java,均匀合并两个数组

    将两个不同长度的数组合并在一起以使它们均匀分布在新数组中的最佳方法是什么 假设我有以下数组 String array1 new String 7 String array2 new String 2 String mergedArray n
  • Xamarin Studio - 无法登录 - 已识别项目之一的格式无效

    作为我在 Xamarin 中使用 开发的 Microsoft Action Visual Studio 资格的一部分 我尝试登录 Xamarin Studio Mac 我的 Mac 上仍然有 Xamarin Studio 直到最近我有了独立
  • 如何在 Z80 asm 中将两个字节重复写入一块 RAM

    我正在尝试将两个字节 颜色值 写入我的 TI 84 Plus CE T 计算器的 VRAM 该计算器使用 Zilog eZ80 CPU VRAM 从 0xD40000 开始 长度为 0x25800 字节 该计算器有一个内置的系统调用 称为M
  • Python中的uWSGI请求超时

    尝试在uWSGI中设置请求的超时 我不确定设置是否正确 似乎有多个超时选项 套接字 接口等 并且不太清楚要配置哪个设置或在哪里设置它 我正在寻找的行为是延长向 REST 应用程序的资源层发出请求所需的时间 您可能正在寻找harakiri参数
  • 收听“0.0.0.0:80”和“:80”有什么区别?

    当我们使用http ListenAndServe https golang org pkg net http ListenAndServe 有什么区别 http ListenAndServe 0 0 0 0 80 nil and http