代码之家  ›  专栏  ›  技术社区  ›  Mahesh Uligade

如何从套接字中提取端口号?

  •  0
  • Mahesh Uligade  · 技术社区  · 6 年前

    我正在尝试使用此代码从套接字提取端口号

    import           Network.Socket
    
    let hints = defaultHints { addrSocketType = Stream }
    addr:_ <- getAddrInfo (Just hints) (Just "127.0.0.1") (Just "3000")
    sock <- socket (addrFamily addr) (addrSocketType addr) (addrProtocol addr)
    socketPort  sock
    

    但是 socketPort sock 总是返回0,为什么它返回0?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Igor Drozdov    6 年前

    您似乎跳过了一个步骤(将套接字绑定到地址):

    bind sock (addrAddress addr)
    

    未绑定套接字返回 0.0.0.0:0 ,这就是为什么你总是收到 0 由于 socketPort sock