gpt4 book ai didi

去监听已经在使用的端口不返回错误

转载 作者:IT王子 更新时间:2023-10-29 01:03:19 25 4
gpt4 key购买 nike

我已经有一个正在监听端口 80 的网络服务器(用 node.js 编写)。当我运行另一个也在端口 80 上监听的网络服务器(用 Go 编写)时,Go 网络服务器不会引发错误。

怎么会这样。

我的操作系统是windows,go版本是go1.2.2。

最佳答案

我在工作中遇到过这种情况。 golang 服务器将监听 IPv6 端口 80,而另一个应用程序仅监听 IPv4。

对我来说,golang 应用程序首先运行。它停止收听 v4,然后在其他应用关闭后恢复。

[稍后编辑]为了演示这一点,我刚刚运行了在此 MSDN 上找到的 WinSock 绑定(bind)/监听 C++ 代码。将端口更改为 80 的页面,然后我使用了这段 Go 代码:

package main

import (
"log"
"net/http"
)

func main() {
http.Handle("/", http.FileServer(http.Dir("c:\\temp")))
log.Fatal(http.ListenAndServe(":80", nil))
}

此设置之所以有效,是因为 C++ 正在监听 127.0.0.1 并且继续 0.0.0.0 将 go 代码更改为 log.Fatal(http. ListenAndServe("127.0.0.1:80", nil)) 导致了 nemo 建议的错误消息。

然后我开始我的主要生产代码,它有一个 Mongoose HTTP 实例,它正在监听 0.0.0.0:80,然后运行上面的 Go 代码(删除 127.0.0.1)和两者正在收听 0.0.0.0:80,这可以通过 Process Explorer 查看。

both apps listening to 0.0.0.0:80

关于去监听已经在使用的端口不返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24483955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com