首页 > 解决方案 > 如何从套接字中提取端口号?

问题描述

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

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 ?

标签: socketshaskell

解决方案


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

bind sock (addrAddress addr)

未绑定的套接字返回0.0.0.0:0,这就是为什么您总是收到0以下结果socketPort sock


推荐阅读