如何从socket中提取PortNumber?

时间:2018-05-08 06:18:17

标签: sockets haskell

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

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 个答案:

答案 0 :(得分:2)

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

bind sock (addrAddress addr)

未绑定套接字返回0.0.0.0:0,这就是0

导致您始终收到socketPort sock的原因