Added TcpListener::GetLocalPort()

git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1480 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
LaurentGom 2010-03-29 17:02:10 +00:00
parent 87f712e0c6
commit 507f467390
5 changed files with 38 additions and 3 deletions

View file

@ -159,7 +159,7 @@ IpAddress IpAddress::GetLocalAddress()
priv::SocketImpl::Close(sock);
// Finally build the IP address
localAddress.myAddress = address.sin_addr.s_addr;
localAddress = IpAddress(ntohl(address.sin_addr.s_addr));
return localAddress;
}

View file

@ -41,6 +41,25 @@ Socket(Tcp)
}
////////////////////////////////////////////////////////////
unsigned short TcpListener::GetLocalPort() const
{
if (GetHandle() != priv::SocketImpl::InvalidSocket())
{
// Retrieve informations about the local end of the socket
sockaddr_in address;
priv::SocketImpl::AddrLength size = sizeof(address);
if (getsockname(GetHandle(), reinterpret_cast<sockaddr*>(&address), &size) != -1)
{
return ntohs(address.sin_port);
}
}
// We failed to retrieve the port
return 0;
}
////////////////////////////////////////////////////////////
Socket::Status TcpListener::Listen(unsigned short port)
{

View file

@ -30,8 +30,8 @@
#include <SFML/Network/Packet.hpp>
#include <SFML/Network/SocketImpl.hpp>
#include <SFML/System/Err.hpp>
#include <algorithm>
#include <string.h>
#include <algorithm>
#include <string.h>
#ifdef _MSC_VER
#pragma warning(disable : 4127) // "conditional expression is constant" generated by the FD_SET macro