6#include "Containers/Array.h"
7#include "Containers/Map.h"
32#ifndef PLATFORM_SOCKETSUBSYSTEM
34 #define PLATFORM_SOCKETSUBSYSTEM FName(TEXT("WINDOWS"))
36 #define PLATFORM_SOCKETSUBSYSTEM FName(TEXT("MAC"))
38 #define PLATFORM_SOCKETSUBSYSTEM FName(TEXT("IOS"))
40 #define PLATFORM_SOCKETSUBSYSTEM FName(TEXT("UNIX"))
41 #elif PLATFORM_ANDROID
42 #define PLATFORM_SOCKETSUBSYSTEM FName(TEXT("ANDROID"))
44 #define PLATFORM_SOCKETSUBSYSTEM FName(TEXT(""))
113 UE_DEPRECATED(4.23,
"Use the CreateSocket with the FName parameter for support for multiple protocol types.")
186 UE_DEPRECATED(4.23,
"Migrate to GetAddressInfo that takes an FName as the protocol specification.")
267 UE_DEPRECATED(4.23,
"Please use GetAddressInfo to query hostnames")
316 UE_DEPRECATED(4.23,
"To support different address sizes, use CreateInternetAddr with no arguments and call SetIp/SetRawIp and SetPort on the returned object")
533 if (Subsystem && Socket)
EAddressInfoFlags
Definition AddressInfoTypes.h:12
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
ESocketErrors
Definition SocketErrors.h:9
@ SE_GET_LAST_ERROR_CODE
Definition SocketErrors.h:68
@ SE_HOST_NOT_FOUND
Definition SocketErrors.h:58
@ SE_NO_ERROR
Definition SocketErrors.h:10
TSharedPtr< ISocketSubsystem > IOnlineSocketPtr
Definition SocketSubsystem.h:543
ESocketProtocolFamily
Definition SocketTypes.h:16
ESocketType
Definition SocketTypes.h:33
@ SOCKTYPE_Unknown
Definition SocketTypes.h:35
ERecvMultiFlags
Definition SocketTypes.h:153
ETimestampTranslation
Definition SocketTypes.h:131
#define ANSI_TO_TCHAR(str)
Definition StringConv.h:1020
Definition IPAddress.h:22
Definition NameTypes.h:617
Definition OutputDevice.h:133
Definition IPAddressAsyncResolve.h:51
Definition IPAddressAsyncResolve.h:14
Definition SocketSubsystem.h:519
void operator()(FSocket *Socket) const
Definition SocketSubsystem.h:531
FSocketDeleter()
Definition SocketSubsystem.h:521
FSocketDeleter(ISocketSubsystem *InSubsystem)
Definition SocketSubsystem.h:526
Definition SocketSubsystem.h:58
SOCKETS_API ISocketSubsystem()
virtual SOCKETS_API void GetAddressInfoAsync(FAsyncGetAddressInfoCallback Callback, const TCHAR *HostName, const TCHAR *ServiceName=nullptr, EAddressInfoFlags QueryFlags=EAddressInfoFlags::Default, const FName ProtocolTypeName=NAME_None, ESocketType SocketType=ESocketType::SOCKTYPE_Unknown)
Definition SocketSubsystem.cpp:320
virtual SOCKETS_API bool IsSocketRecvMultiSupported() const
Definition SocketSubsystem.cpp:615
virtual FSocket * CreateSocket(const FName &SocketType, const FString &SocketDescription, const FName &ProtocolName)=0
virtual bool HasNetworkDevice()=0
SOCKETS_API void RemoveHostNameFromCache(const ANSICHAR *HostName)
Definition SocketSubsystem.cpp:495
virtual SOCKETS_API bool GetMultihomeAddress(TSharedRef< FInternetAddr > &Addr)
Definition SocketSubsystem.cpp:454
virtual TSharedRef< FInternetAddr > CreateInternetAddr(const FName ProtocolType)
Definition SocketSubsystem.h:335
virtual SOCKETS_API class FResolveInfoCached * CreateResolveInfoCached(TSharedPtr< FInternetAddr > Addr) const
Definition SocketSubsystem.cpp:529
virtual SOCKETS_API ESocketProtocolFamily GetProtocolFamilyFromName(const FName &InProtocolName) const
Definition SocketSubsystem.cpp:502
virtual bool Init(FString &Error)=0
static SOCKETS_API ISocketSubsystem * Get(const FName &SubsystemName=NAME_None)
Definition SocketSubsystem.cpp:224
virtual bool IsSocketWaitSupported() const =0
virtual SOCKETS_API TSharedRef< FInternetAddr > GetLocalHostAddr(FOutputDevice &Out, bool &bCanBindAll)
Definition SocketSubsystem.cpp:414
virtual TSharedPtr< FInternetAddr > GetAddressFromString(const FString &InAddress)=0
virtual SOCKETS_API double TranslatePacketTimestamp(const FPacketTimestamp &Timestamp, ETimestampTranslation Translation=ETimestampTranslation::LocalTimestamp)
Definition SocketSubsystem.cpp:620
SOCKETS_API void AddHostNameToCache(const ANSICHAR *HostName, TSharedPtr< class FInternetAddr > Addr)
Definition SocketSubsystem.cpp:488
virtual FAddressInfoResult GetAddressInfo(const TCHAR *HostName, const TCHAR *ServiceName=nullptr, EAddressInfoFlags QueryFlags=EAddressInfoFlags::Default, ESocketProtocolFamily ProtocolType=ESocketProtocolFamily::None, ESocketType SocketType=ESocketType::SOCKTYPE_Unknown)
Definition SocketSubsystem.h:187
SOCKETS_API int32 BindNextPort(FSocket *Socket, FInternetAddr &Addr, int32 PortCount, int32 PortIncrement)
Definition SocketSubsystem.cpp:248
virtual SOCKETS_API bool IsRecvFromWithPktInfoSupported() const
Definition SocketSubsystem.cpp:628
SOCKETS_API const TCHAR * GetSocketError(ESocketErrors Code=SE_GET_LAST_ERROR_CODE)
Definition SocketSubsystem.cpp:539
SOCKETS_API FUniqueSocket CreateUniqueSocket(const FName &SocketType, const FString &SocketDescription, bool bForceUDP=false)
Definition SocketSubsystem.cpp:83
virtual SOCKETS_API ~ISocketSubsystem()
virtual void Shutdown()=0
virtual const TCHAR * GetSocketAPIName() const =0
SOCKETS_API bool GetHostByNameFromCache(const ANSICHAR *HostName, TSharedPtr< class FInternetAddr > &Addr)
Definition SocketSubsystem.cpp:475
virtual FSocket * CreateSocket(const FName &SocketType, const FString &SocketDescription, bool bForceUDP=false)
Definition SocketSubsystem.h:98
virtual bool RequiresChatDataBeSeparate()=0
virtual SOCKETS_API TSharedRef< FInternetAddr > GetLocalBindAddr(FOutputDevice &Out)
Definition SocketSubsystem.cpp:441
virtual ESocketErrors GetLastErrorCode()=0
virtual SOCKETS_API TUniquePtr< FRecvMulti > CreateRecvMulti(int32 MaxNumPackets, int32 MaxPacketSize, ERecvMultiFlags Flags=ERecvMultiFlags::None)
Definition SocketSubsystem.cpp:607
virtual ESocketErrors GetHostByName(const ANSICHAR *HostName, FInternetAddr &OutAddr)
Definition SocketSubsystem.h:268
virtual SOCKETS_API bool GetLocalAdapterAddresses(TArray< TSharedPtr< FInternetAddr > > &OutAddresses)
Definition SocketSubsystem.cpp:362
virtual void DestroySocket(FSocket *Socket)=0
virtual bool GetHostName(FString &HostName)=0
virtual TSharedRef< FInternetAddr > CreateInternetAddr()=0
virtual ESocketErrors TranslateErrorCode(int32 Code)=0
static SOCKETS_API void ShutdownAllSystems()
Definition SocketSubsystem.cpp:96
virtual SOCKETS_API TArray< TSharedRef< FInternetAddr > > GetLocalBindAddresses()
Definition SocketSubsystem.cpp:326
virtual FAddressInfoResult GetAddressInfo(const TCHAR *HostName, const TCHAR *ServiceName=nullptr, EAddressInfoFlags QueryFlags=EAddressInfoFlags::Default, const FName ProtocolTypeName=NAME_None, ESocketType SocketType=ESocketType::SOCKTYPE_Unknown)=0
virtual SOCKETS_API FName GetProtocolNameFromFamily(ESocketProtocolFamily InProtocolFamily) const
Definition SocketSubsystem.cpp:516
virtual bool RequiresEncryptedPackets()=0
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition AddressInfoTypes.h:100
Definition PacketView.h:135