在 Go 语言中,可以使用net 包中的Listener 接口的File() 方法来获取监听套接字的文件描述符。

示例代码:

package main

import (
    "fmt"
    "net"
    "os"
)

func main() {
    ln, err := net.Listen("tcp", ":8080")
    if err != nil {
        fmt.Println("Error listening:", err)
        os.Exit(1)
    }
    defer ln.Close()

    // 获取监听套接字的文件描述符
    fd, err := ln.(*net.TCPListener).File()
    if err != nil {
        fmt.Println("Error getting file descriptor:", err)
        os.Exit(1)
    }

    fmt.Println("Listening on", ln.Addr())
    fmt.Println("File descriptor:", fd.Fd())
}

在上面的示例代码中,我们创建了一个 TCP 监听器,并使用File() 方法获取了监听套接字的文件描述符,并打印出来。注意,这里需要将Listener 接口转换为*net.TCPListener 类型才能调用File() 方法。


原文地址: http://www.cveoy.top/t/topic/kTri 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录