返回顶部
首页 > 资讯 > 精选 >go中如何关闭http端口?
  • 347
分享到

go中如何关闭http端口?

go语言 2024-02-09 18:02:23 347人浏览 八月长安
摘要

在Go语言中,关闭Http端口可以通过使用`http.Server`的`Close()`方法来实现。首先,我们需要创建一个`http.Server`实例并监听指定的端口。一旦服务器开始

Go语言中,关闭Http端口可以通过使用`http.Server`的`Close()`方法来实现。首先,我们需要创建一个`http.Server`实例并监听指定的端口。一旦服务器开始运行,我们可以通过调用`Close()`方法来停止服务器。这将导致正在运行的HTTP服务器立即停止并释放监听的端口。另外,我们还可以使用信号量来优雅地关闭HTTP服务器,例如使用`os.Interrupt`信号来捕获Ctrl+C事件并在收到信号时关闭服务器。总之,Go语言提供了简单且灵活的方法来关闭HTTP端口,让我们能够更好地控制服务器的运行。

问题内容

我刚刚学习 go,并创建简单的网络应用程序。但是每次我在 go 中启动本地主机(即使我在终端中停止进程),它也不会关闭端口。那么我该如何关闭它。

这是代码

const portNumber = ":8080"
func main() {
http.HandleFunc("/", Home)
http.HandleFunc("/about", About)

fmt.Println(fmt.Sprintf("Starting on port %s", portNumber))
_ = http.ListenAndServe(portNumber, nil)
}

我在网上做了研究,但找不到解决方案,所以希望你能帮助我。谢谢

解决方法

我认为首先重要的是重新表述你的问题并真正理解你在问什么。 不存在封闭的 http 端口之类的东西。 这就是 http server 在非常高的层面上的工作方式:

  1. 因此,当您要求 http 服务器开始侦听某个端口时,您基本上是在要求操作系统创建一个代表端点的 internet 套接字。从端点来看,我的意思是 ip: port。

  2. 在 http 1、1.1 和 2 的情况下,该套接字尤其是 tcp 互联网套接字。

  3. 该套接字正在侦听阶段运行,并且正在侦听任何传入的连接请求。如果它收到任何传入请求,那么内核将简单地进行 3 路 tcp 握手,在成功握手后,内核创建一个连接对象并将其移交给代表后端应用程序的进程,您将在其中侦听任何新连接创建的。 所以你会看到 port 一直存在于你的系统中,你在启动 http 服务器时没有创建一个新的 port,但基本上创建了一个 internet 套接字对象并要求你的内核开始侦听该 port 以获取新连接并将其移交创建连接时到您的后端应用程序。 所以你基本上是在问我如何停止在该端点处监听并要求内核删除该互联网套接字。 下面是一个粗略的代码段,可让您了解如何执行此操作。

    import (
     "context"
     "log"
     "net/http"
     "os"
     "os/signal"
     "syscall"
     "time"
     )
     func main() {
         server := &http.Server{Addr: ":8080", Handler: myHandler}
         go server.ListenAndServe()
    
         interrupt := make(chan os.Signal, 1)
         signal.Notify(interrupt, os.Interrupt, syscall.SIGTERM)
    
         <-interrupt
         log.Println("Shutting down server...")
    
         ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
         defer cancel()
    
         if err := server.Shutdown(ctx); err != nil {
             log.Fatal("Server forced to shutdown:", err)
         }
         log.Println("Server stopped")
     }
    
     func myHandler(w http.ResponseWriter, r *http.Request) {
         // Handle requests
     }

    以上就是go中如何关闭http端口?的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: go中如何关闭http端口?

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

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

猜你喜欢
  • go中如何关闭http端口?
    在Go语言中,关闭HTTP端口可以通过使用`http.Server`的`Close()`方法来实现。首先,我们需要创建一个`http.Server`实例并监听指定的端口。一旦服务器开始...
    99+
    2024-02-09
    go语言
  • linux如何关闭端口
    要关闭Linux上的端口,您可以使用以下命令:1. 使用`netstat`命令找到要关闭的端口的进程ID(PID):```netst...
    99+
    2023-08-25
    linux
  • ubuntu如何关闭80端口
    ubuntu关闭80端口的操作方法:打开终端命令行模式。输入以下命令开启防火墙。sudo ufw enable再输入命令关闭80端口。sudo ufw deny 80最后查询当前防火墙状态进行确认。sudo ufw status...
    99+
    2024-04-02
  • Win10如何关闭445端口
    要关闭Windows 10上的445端口,您可以按照以下步骤操作:1. 打开“控制面板”。2. 在“控制面板”中,选择“系统和安全”...
    99+
    2023-08-29
    win10
  • win10如何关闭135端口
    要关闭Windows 10上的135端口,您可以按照以下步骤操作:1. 打开“控制面板”。2. 在控制面板中,选择“系统和安全”。3...
    99+
    2023-09-01
    win10
  • ​win11如何关闭445端口
    要关闭Windows 11上的445端口,你可以按照以下步骤进行操作: 打开控制面板:右键单击开始菜单,选择“控制面板”。 ...
    99+
    2023-10-22
    ​win11
  • Win11如何关闭445端口
    要关闭Windows 11上的445端口,可以按照以下步骤操作:1. 打开“控制面板”,可以通过在任务栏搜索框中输入“控制面板”来查...
    99+
    2023-08-20
    Win11
  • 端口显示被占用,如何关闭端口
    用管理员权限打开命令提示符: 如果要关闭3306端口,首先要查询此端口号对应的PID,则输入以下命令 1.输入:netstat -ano|findstr 3306 然后借助命令终止PID对应的进程,输入以下命令: 2.输入:taskkill...
    99+
    2023-08-30
    服务器 linux 运维
  • 电脑135端口如何关闭
    这篇“电脑135端口如何关闭”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“电脑135端口如何关闭”文章吧。135端口关闭方法...
    99+
    2023-07-01
  • linux如何关闭高危端口
    要关闭Linux上的高危端口,可以按照以下步骤进行操作: 确定要关闭的高危端口。可以通过查看系统的端口使用情况或者安全扫描工具来...
    99+
    2023-10-24
    linux
  • windows的443端口如何关闭
    这篇文章主要介绍了windows的443端口如何关闭的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇windows的443端口如何关闭文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2022-12-30
    windows
  • win10的445端口如何关闭
    今天小编给大家分享一下win10的445端口如何关闭的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。解决方法: 可以通过盘【设...
    99+
    2023-07-01
  • 如何关闭电脑端口 关闭不常用端口的2种方法
    通常电脑每一项系统服务都有一个对应端口,例如WWW服务是80端口,一般比较关注电脑端口的朋友都是针对服务器的,因为服务器的安全对于每个站长或管理员都十分重要。通过关闭不常用的端口,可以有效的将黑客拒之千里之外。关闭了一个...
    99+
    2023-05-31
    电脑端口 关闭端口 电脑 方法
  • Go语言如何实现关闭http请求
    这篇文章主要介绍“Go语言如何实现关闭http请求”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Go语言如何实现关闭http请求”文章能帮助大家解决问题。写在前面面试的时候问到如何关闭http请求,...
    99+
    2023-07-05
  • 如何查看端口是否关闭
    如何查看端口是否关闭,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。查看端口是否关闭的方法:1、直接按键盘开始键+R;2、进入DOS命令;3、单机鼠标右键,悬着粘...
    99+
    2023-06-20
  • Win7系统如何关闭445端口
    要关闭Windows 7系统上的445端口,可以按照以下步骤进行操作:1. 点击开始菜单,输入“Windows防火墙”并打开它。2....
    99+
    2023-09-01
    win7
  • win10系统如何关闭445端口
    要关闭Windows 10系统上的445端口,您可以按照以下步骤操作:1. 打开“控制面板”。2. 选择“系统和安全”。3. 点击“...
    99+
    2023-10-19
    win10
  • linux如何关闭5353端口服务
    要关闭Linux上的5353端口服务,可以使用以下步骤:1. 打开终端窗口。2. 使用root权限登录或者使用sudo命令。3. 运...
    99+
    2023-08-25
    linux
  • Linux端口被占用如何关闭
    要关闭Linux上被占用的端口,可以通过以下步骤进行: 确定被占用的端口:可以使用以下命令来查看当前被占用的端口及其对应的进程: ...
    99+
    2024-02-29
    linux
  • 如何使用BAT命令关闭135端口、139端口、445端口
    这篇文章主要介绍了如何使用BAT命令关闭135端口、139端口、445端口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。打开可以将下面的代码复制到文本里面然后保存为123.b...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作