golang net/http 的 ListenAndServe 的工作方式(取代 listen、accept)

 

 

在Go的 net/http 包中,当你使用 ListenAndServe 或 ListenAndServeTLS 函数启动一个HTTP服务器时,

你不需要直接调用 listen 和 accept 操作,因为这些函数已经为你处理了这些底层的网络细节。

 

ListenAndServe 函数的工作方式如下:

1. 它首先调用net.Listen来监听指定的网络地址(例如"localhost:8080")。

2. 然后,它开始一个无限循环,调用 http.Server 的 Serve 方法来处理传入的连接。

 

Serve方法内部包含了对 accept 操作的处理,它会接收来自 Listen 的新的客户端连接,并为每个连接创建一个新的 goroutine 来处理请求。

如果你想要更底层的控制,你可以创建自己的 http.Server 实例,手动调用 Listen,然后使用 Server.Serve 来处理连接,或者直接使用 Server.ServeTCP、Server.ServeUnix 等方法,这些方法内部都会处理accept操作。

tcp server 为什么需要 accept .

 

Link:https://www.cnblogs.com/farwish/p/18231631

posted on 2024-06-04 20:11  ercom  阅读(9)  评论(0编辑  收藏  举报