1
我在golang中創建了一個文件服務器,並在Listener上調用Close()方法。Golang在關閉後保持文件服務套接字打開
當我嘗試在新的Web連接上訪問端口時,它顯示Socket已關閉,我無法訪問該網站。
如果我使用已經建立的連接刷新頁面....頁面重新加載好,就好像套接字從未關閉一樣?我甚至能夠瀏覽文件系統。
我注意到30分鐘後插座似乎強制關閉。
有什麼我失蹤,迫使套接字放棄所有現有的連接,以防止人們訪問文件服務器?
var fileListener net.Listener
host_string = "127.0.0.1:8080"
fileListener, _ = net.Listen("tcp", host_string)
server := &http.Server{Addr: host_string, Handler:
http.FileServer(http.Dir("/"))}
go func() { server.Serve(fileListener) }()
fileListener.Close()
會用TimeoutHandler幫忙包裝處理程序嗎? (https://golang.org/pkg/net/http/#TimeoutHandler) –
我遵循了使用ConnState的建議。完美的作品!謝謝! –