UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SocketsBSDIOS.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"
6#include "IPAddressBSDIOS.h"
8#include "Sockets.h"
10
11class FInternetAddr;
12
17 : public FSocketBSD
18{
19public:
20
25
27 {
28 FSocketBSD::Close();
29 }
30
31 virtual bool JoinMulticastGroup(const FInternetAddr& GroupAddress, const FInternetAddr& InterfaceAddress) override
32 {
33 const FInternetAddrBSDIOS& IOSInterfaceAddr = static_cast<const FInternetAddrBSDIOS&>(InterfaceAddress);
34 // iOS does not allow usage of an interface id of 0, so redirect to using the group address instead
35 if (GroupAddress.GetProtocolType() == FNetworkProtocolTypes::IPv6 && IOSInterfaceAddr.GetScopeId() == 0)
36 {
37 return FSocketBSD::JoinMulticastGroup(GroupAddress);
38 }
39
40 return FSocketBSD::JoinMulticastGroup(GroupAddress, InterfaceAddress);
41 }
42
43 virtual bool LeaveMulticastGroup(const FInternetAddr& GroupAddress, const FInternetAddr& InterfaceAddress) override
44 {
45 const FInternetAddrBSDIOS& IOSInterfaceAddr = static_cast<const FInternetAddrBSDIOS&>(InterfaceAddress);
46 if (GroupAddress.GetProtocolType() == FNetworkProtocolTypes::IPv6 && IOSInterfaceAddr.GetScopeId() == 0)
47 {
48 return FSocketBSD::LeaveMulticastGroup(GroupAddress);
49 }
50
51 return FSocketBSD::LeaveMulticastGroup(GroupAddress, InterfaceAddress);
52 }
53};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
int32 SOCKET
Definition SocketSubsystemBSDPrivate.h:47
ESocketType
Definition SocketTypes.h:33
Definition IPAddress.h:22
virtual FName GetProtocolType() const
Definition IPAddress.h:181
Definition NameTypes.h:617
Definition SocketsBSDIOS.h:18
virtual bool JoinMulticastGroup(const FInternetAddr &GroupAddress, const FInternetAddr &InterfaceAddress) override
Definition SocketsBSDIOS.h:31
virtual bool LeaveMulticastGroup(const FInternetAddr &GroupAddress, const FInternetAddr &InterfaceAddress) override
Definition SocketsBSDIOS.h:43
virtual ~FSocketBSDIOS()
Definition SocketsBSDIOS.h:26
FSocketBSDIOS(SOCKET InSocket, ESocketType InSocketType, const FString &InSocketDescription, const FName &InSocketProtocol, ISocketSubsystem *InSubsystem)
Definition SocketsBSDIOS.h:21
Definition SocketSubsystem.h:58
const FLazyName IPv6(TEXT("IPv6"))
Definition SocketTypes.h:28