drvpv7995 2019-08-19 07:59 采纳率: 100%
浏览 150

如何检查套接字是否在监听

I need to know if a unix socket (specifically redis socket) is listening using GoLang in an Ubuntu machine. The only way I thought to do this is parsing the

netstat --listen

command output. Is there any other way?

  • 写回答

1条回答 默认 最新

  • dongquweng5152 2019-08-19 08:23
    关注

    You could give a try to net.Dial, for example:

    https://play.golang.org/p/DIsPzOmWqED

    package main
    
    import (
        "fmt"
        "log"
        "net"
        "path/filepath"
    )
    
    func main() {
        l, err := net.Dial("unix", filepath.Join("/tmp", "my.sock"))
        if err != nil {
            log.Fatal(err)
        }
        fmt.Printf("l = %+v
    ", l)
    }
    

    If socket is not "listening" you may get an error like this:

    2019/08/19 10:20:38 dial unix /tmp/my.sock: connect: connection refused
    exit status 1
    
    评论

报告相同问题?

悬赏问题

  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥15 对于这个问题的算法代码
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题