Eu tenho uma instância de
boost::beast::websocket::stream<
boost::beast::ssl_stream<
boost::beast::tcp_stream>>
e eu gostaria de obter o número da porta usada pelo socket subjacente para este fluxo. Não consigo descobrir a mágica para isso.
Se eu estiver lendo a documentação corretamente, boost::beast::stream
o suporte tem lowest_layer()
função, mas meu compilador diz o contrário. E se eu começar a ir fundo na next_layer
toca do coelho, ainda não consigo descobrir como obter o número da porta.
O Beast tem uma função gratuita que ajuda a obter a camada mais baixa:
Agora, como você escolheu
tcp_stream
a camada mais baixa, você pode obter o soquete subjacente:E isso lhe dá os pontos finais, por exemplo:
Ou se você realmente quiser os detalhes separados:
Veja tudo ao vivo no Coliru