Как извлечь PortNumber из сокета? - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь извлечь номер порта из сокета, используя этот код

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 голосов
/ 08 мая 2018

Похоже, вы пропустили один шаг (привязка сокета к адресу):

bind sock (addrAddress addr)

Несвязанный сокет возвращает 0.0.0.0:0, поэтому вы всегда получаете 0 в результате socketPort sock

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...