UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IPAddressBSD.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "IPAddress.h"
8#include "SocketTypes.h"
10
11#if PLATFORM_HAS_BSD_SOCKETS || PLATFORM_HAS_BSD_IPV6_SOCKETS
12
13class FSocketSubsystemBSD;
14
20{
23
24protected:
26 FSocketSubsystemBSD* SocketSubsystem;
27
28 void Clear();
29 void ResetScopeId();
30
32
38 virtual void SetIp(const in_addr& IPv4Addr)
39 {
40 ((sockaddr_in*)&Addr)->sin_addr = IPv4Addr;
41 Addr.ss_family = AF_INET;
42 }
43
44#if PLATFORM_HAS_BSD_IPV6_SOCKETS
50 virtual void SetIp(const in6_addr& IPv6Addr)
51 {
52 ((sockaddr_in6*)&Addr)->sin6_addr = IPv6Addr;
53 Addr.ss_family = AF_INET6;
54 }
55#endif
56
57public:
62
64
73 virtual bool CompareEndpoints(const FInternetAddr& InAddr) const override;
74
80 virtual void SetRawIp(const TArray<uint8>& RawAddr) override;
81
87 virtual TArray<uint8> GetRawIp() const override;
88
95 virtual void SetIp(uint32 InAddr) override;
96
107 virtual void SetIp(const TCHAR* InAddr, bool& bIsValid) override;
108
114 void SetIp(const sockaddr_storage& IpAddr);
115
122 virtual void Set(const sockaddr_storage& AddrData);
123
131 virtual void Set(const sockaddr_storage& AddrData, SOCKLEN AddrSize);
132
133#if PLATFORM_HAS_BSD_IPV6_SOCKETS
139 void GetIp(in6_addr& OutAddr) const
140 {
142 {
143 return;
144 }
145
146 OutAddr = ((sockaddr_in6*)&Addr)->sin6_addr;
147 }
148#endif
149
155 void GetIp(in_addr& OutAddr) const
156 {
158 {
159 return;
160 }
161
162 OutAddr = ((sockaddr_in*)&Addr)->sin_addr;
163 }
164
171 virtual void GetIp(uint32& OutAddr) const override;
172
174 {
175 return &Addr;
176 }
177
183 virtual void SetPort(int32 InPort) override;
184
186 virtual bool IsPortValid(int32 InPort) const override;
187
189 virtual int32 GetPort() const override;
190
198 virtual void SetAnyAddress() override;
199
201 virtual void SetAnyIPv4Address();
202
204 virtual void SetAnyIPv6Address();
205
213 virtual void SetBroadcastAddress() override;
214
216 virtual void SetIPv4BroadcastAddress();
217
219 virtual void SetIPv6BroadcastAddress();
220
228 virtual void SetLoopbackAddress() override;
229
231 virtual void SetIPv4LoopbackAddress();
232
234 virtual void SetIPv6LoopbackAddress();
235
241 virtual FString ToString(bool bAppendPort) const override;
242
248 virtual bool operator==(const FInternetAddr& Other) const override;
249
255 virtual bool IsValid() const override;
256
262 virtual TSharedRef<FInternetAddr> Clone() const override;
263
269 virtual FName GetProtocolType() const override;
270
277 virtual SOCKLEN GetStorageSize() const;
278
286 virtual void SetScopeId(uint32 NewScopeId);
287
294 virtual uint32 GetScopeId() const;
295
296 virtual uint32 GetTypeHash() const override;
297
298 friend class FSocketBSD;
299};
300
301#endif
#define PACKAGE_SCOPE
Definition CoreOnlinePackage.h:9
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
socklen_t SOCKLEN
Definition SocketSubsystemBSDPrivate.h:46
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IPAddress.h:22
virtual TSharedRef< FInternetAddr > Clone() const =0
virtual bool operator==(const FInternetAddr &Other) const
Definition IPAddress.h:147
virtual void SetLoopbackAddress()=0
virtual void SetBroadcastAddress()=0
virtual uint32 GetTypeHash() const =0
virtual FName GetProtocolType() const
Definition IPAddress.h:181
virtual void GetIp(uint32 &OutAddr) const =0
virtual bool CompareEndpoints(const FInternetAddr &InAddr) const
Definition IPAddress.h:45
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 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
Definition NameTypes.h:617
Definition Array.h:670
Definition SharedPointer.h:153
const FLazyName IPv6(TEXT("IPv6"))
Definition SocketTypes.h:28
const FLazyName IPv4(TEXT("IPv4"))
Definition SocketTypes.h:27
FString ToString(uint16 Value)
Definition PathFollowingComponent.cpp:82