0
我正在製作一個遊戲,玩家可以主持在線會話。我正在使用SFML網絡庫。但是我想在等待傳入連接時顯示服務器主機的IP地址。我怎樣才能得到這個IP地址?我正在尋找內部IP地址,但如果可以獲得外部IP地址,這將是一項獎勵。獲取SFML中的主機IP地址
sf::TcpListener listener;
// bind the listener to a port
if (listener.listen(53000) != sf::Socket::Done)
{
// error...
}
// accept a new connection
sf::TcpSocket client;
if (listener.accept(client) != sf::Socket::Done)
{
// error...
}
據我所知,如果您沒有指定['listen'](http://www.sfml-dev.org/documentation/2.4.0/classsf_1_1TcpListener.php#a9504758ea3570e62cb20b209c11776a1)函數的接口,那麼它將監聽* all *接口上的傳入連接(即它綁定到INADDR_ANY)。因此你不能從'TcpListener'類獲得任何特定接口的地址。相反,您必須使用平臺網絡功能來獲取接口列表,並且猜測哪一個是正確的,或者僅列出所有接口。 –
與STL的方法,IP地址就在那裏在recvfrom()函數;) – Charlie
@Charlie一個很少使用TCP套接字'recvfrom'。當'TcpSocket'類具有接收數據的成員函數時,也很少使用純C函數。最後,它不是OP所需的移除連接地址,而是本地服務器的移除連接地址。 –