UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IPAddress.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "Containers/Map.h"
7#include "Containers/Set.h"
9#include "CoreMinimal.h"
10#include "HAL/Platform.h"
11#include "HAL/PlatformAtomics.h"
13#include "SocketTypes.h"
15#include "UObject/NameTypes.h"
16#include "UObject/UnrealNames.h"
17
22{
23protected:
26 {
27 }
28
29public:
30
31 virtual ~FInternetAddr()
32 {
33 }
34
45 virtual bool CompareEndpoints(const FInternetAddr& InAddr) const
46 {
47 return *this == InAddr;
48 }
49
55 virtual void SetIp(uint32 InAddr) = 0;
56
62 virtual void SetIp(const TCHAR* InAddr, bool& bIsValid) = 0;
63
69 virtual void GetIp(uint32& OutAddr) const = 0;
70
76 virtual void SetPort(int32 InPort) = 0;
77
79 virtual bool IsPortValid(int32 InPort) const { return true; }
80
86 virtual void GetPort(int32& OutPort) const
87 {
88 OutPort = GetPort();
89 }
90
94 virtual int32 GetPort() const = 0;
95
100 {
102 }
103
107 virtual int32 GetPlatformPort() const
108 {
109 return GetPort();
110 }
111
117 virtual void SetRawIp(const TArray<uint8>& RawAddr) = 0;
118
124 virtual TArray<uint8> GetRawIp() const = 0;
125
127 virtual void SetAnyAddress() = 0;
128
130 virtual void SetBroadcastAddress() = 0;
131
133 virtual void SetLoopbackAddress() = 0;
134
140 virtual FString ToString(bool bAppendPort) const = 0;
141
147 virtual bool operator==(const FInternetAddr& Other) const
148 {
150 TArray<uint8> OtherIP = Other.GetRawIp();
151 return ThisIP == OtherIP && GetPort() == Other.GetPort();
152 }
153
159 virtual uint32 GetTypeHash() const = 0;
160
166 virtual bool IsValid() const = 0;
167
173 virtual TSharedRef<FInternetAddr> Clone() const = 0;
174
181 virtual FName GetProtocolType() const
182 {
183 return NAME_None;
184 }
185
186 SOCKETS_API virtual void DumpAddrData() const;
187
189 {
190 return InAddr.GetTypeHash();
191 }
192};
193
194
200template<typename ValueType>
201struct FInternetAddrKeyMapFuncs : public BaseKeyFuncs<ValueType, TSharedRef<FInternetAddr>, false>
202{
203 static inline const TSharedRef<FInternetAddr>& GetSetKey(const TPair<TSharedRef<FInternetAddr>, ValueType>& Element)
204 {
205 return Element.Key;
206 }
207
209 {
210 return *A == *B;
211 }
212
214 {
215 return Key->GetTypeHash();
216 }
217};
218
219template<typename ValueType>
220struct FInternetAddrConstKeyMapFuncs : public BaseKeyFuncs<ValueType, TSharedRef<const FInternetAddr>, false>
221{
223 {
224 return Element.Key;
225 }
226
228 {
229 return *A == *B;
230 }
231
233 {
234 return Key->GetTypeHash();
235 }
236};
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IPAddress.h:22
virtual void GetPort(int32 &OutPort) const
Definition IPAddress.h:86
virtual TSharedRef< FInternetAddr > Clone() const =0
virtual bool operator==(const FInternetAddr &Other) const
Definition IPAddress.h:147
virtual void SetPlatformPort(int32 InPort)
Definition IPAddress.h:99
virtual SOCKETS_API void DumpAddrData() const
Definition IPAddress.cpp:8
virtual void SetLoopbackAddress()=0
virtual FString ToString(bool bAppendPort) const =0
virtual void SetBroadcastAddress()=0
virtual uint32 GetTypeHash() const =0
virtual FName GetProtocolType() const
Definition IPAddress.h:181
virtual ~FInternetAddr()
Definition IPAddress.h:31
virtual void SetIp(const TCHAR *InAddr, bool &bIsValid)=0
virtual void GetIp(uint32 &OutAddr) const =0
virtual bool CompareEndpoints(const FInternetAddr &InAddr) const
Definition IPAddress.h:45
FInternetAddr()
Definition IPAddress.h:25
virtual void SetPort(int32 InPort)=0
virtual bool IsPortValid(int32 InPort) const
Definition IPAddress.h:79
virtual void SetRawIp(const TArray< uint8 > &RawAddr)=0
virtual int32 GetPlatformPort() const
Definition IPAddress.h:107
virtual TArray< uint8 > GetRawIp() const =0
virtual bool IsValid() const =0
virtual void SetIp(uint32 InAddr)=0
virtual int32 GetPort() const =0
virtual void SetAnyAddress()=0
friend uint32 GetTypeHash(const FInternetAddr &InAddr)
Definition IPAddress.h:188
Definition NameTypes.h:617
Definition Array.h:670
Definition SharedPointer.h:153
Definition SetUtilities.h:23
Definition IPAddress.h:221
static uint32 GetKeyHash(const TSharedRef< const FInternetAddr > &Key)
Definition IPAddress.h:232
static const TSharedRef< const FInternetAddr > & GetSetKey(const TPair< TSharedRef< const FInternetAddr >, ValueType > &Element)
Definition IPAddress.h:222
static bool Matches(const TSharedRef< const FInternetAddr > &A, const TSharedRef< const FInternetAddr > &B)
Definition IPAddress.h:227
Definition IPAddress.h:202
static const TSharedRef< FInternetAddr > & GetSetKey(const TPair< TSharedRef< FInternetAddr >, ValueType > &Element)
Definition IPAddress.h:203
static bool Matches(const TSharedRef< FInternetAddr > &A, const TSharedRef< FInternetAddr > &B)
Definition IPAddress.h:208
static uint32 GetKeyHash(const TSharedRef< FInternetAddr > &Key)
Definition IPAddress.h:213
Definition Tuple.h:652