Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengesan Apabila Pelayan HTTP Go Mula Mendengar pada Port Tertentu?

Bagaimanakah Saya Boleh Mengesan Apabila Pelayan HTTP Go Mula Mendengar pada Port Tertentu?

Barbara Streisand
Lepaskan: 2024-12-09 09:09:12
asal
654 orang telah melayarinya

How Can I Detect When a Go HTTP Server Starts Listening on a Specific Port?

Mengesan Status Mendengar Pelayan HTTP dalam Go

Apabila bekerja dengan pelayan HTTP dalam Go, mungkin perlu memantau status pelayan, khususnya apabila ia mula mendengar pada port tertentu. Seperti yang ditonjolkan oleh soalan yang diberikan, pustaka net/http standard tidak menawarkan pilihan yang jelas untuk menjejaki acara ini.

Dalam situasi ini, anda boleh mengurus secara langsung proses mendengar dan memberi isyarat kepada status pendengaran:

package main

import (
    "log"
    "net/http"
)

func main() {
    listener, err := net.Listen("tcp", ":8080")
    if err != nil {
        log.Fatal(err)
    }

    // Signal that the server is open for business.
    done := make(chan struct{})

    go func() {
        defer close(done)

        log.Println("Server is now listening on port :8080")

        if err := http.Serve(listener, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})); err != nil {
            log.Fatal(err)
        }
    }()

    // Wait for the "done" channel to be closed, indicating that the server has started listening.
    <-done
}
Salin selepas log masuk

Dalam pendekatan ini, anda mencipta pendengar dan kemudian menggunakan goroutine untuk mengendalikan kaedah Serve, yang menerima sambungan dan mula melayani permintaan. Pada masa yang sama, anda mencipta saluran (selesai) untuk memberi isyarat kepada status mendengar. Gorutin utama menunggu saluran ditutup, yang berlaku apabila pelayan telah mula mendengar pada port yang ditentukan.

Mekanisme ini membolehkan anda mengambil tindakan yang sesuai atau melakukan sebarang konfigurasi yang diperlukan setelah pelayan berjaya mula mendengar.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Apabila Pelayan HTTP Go Mula Mendengar pada Port Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan