Network: First commit

Former-commit-id: ec8697acc51569f5043e4f70e4cf42f1c5dc487c
This commit is contained in:
Lynix
2015-11-09 15:02:25 +01:00
parent dfa6f06337
commit 1bbf038cc6
37 changed files with 3097 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
// Copyright (C) 2015 Jérôme Leclercq
// This file is part of the "Nazara Engine - Network module"
// For conditions of distribution and use, see copyright notice in Config.hpp
#include <Nazara/Network/IpAddress.hpp>
#include <winsock2.h>
#include <ws2tcpip.h>
namespace Nz
{
class IpAddressImpl
{
public:
using SockAddrBuffer = std::array<UInt8, sizeof(sockaddr_in6)>;
IpAddressImpl() = delete;
~IpAddressImpl() = delete;
static IpAddress FromAddrinfo(const addrinfo* info);
static IpAddress FromAddrinfo(const addrinfoW* info);
static IpAddress FromSockAddr(const sockaddr* address);
static IpAddress FromSockAddr(const sockaddr_in* addressv4);
static IpAddress FromSockAddr(const sockaddr_in6* addressv6);
static bool ResolveAddress(const IpAddress& ipAddress, String* hostname, String* service);
static std::vector<HostnameInfo> ResolveHostname(NetProtocol procol, const String& hostname, const String& service);
static socklen_t ToSockAddr(const IpAddress& ipAddress, void* buffer);
};
}