Files
UnrealEngine/Engine/Source/Runtime/Sockets/Private/Windows/SocketsWindows.h
2025-05-18 13:04:45 +08:00

37 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "HAL/PlatformTime.h"
#if PLATFORM_HAS_BSD_SOCKET_FEATURE_WINSOCKETS && (PLATFORM_HAS_BSD_SOCKETS || PLATFORM_HAS_BSD_IPV6_SOCKETS)
#include "BSDSockets/SocketsBSD.h"
#include "Mswsock.h"
/**
* Implements a Windows/BSD network socket.
*/
class FSocketWindows
: public FSocketBSD
{
public:
FSocketWindows(SOCKET InSocket, ESocketType InSocketType, const FString& InSocketDescription, const FName& InSocketProtocol, ISocketSubsystem* InSubsystem)
: FSocketBSD(InSocket, InSocketType, InSocketDescription, InSocketProtocol, InSubsystem)
{ }
// FSocketBSD overrides
virtual bool Shutdown(ESocketShutdownMode Mode) override;
virtual bool SetIpPktInfo(bool bEnable) override;
virtual bool RecvFromWithPktInfo(uint8* Data, int32 BufferSize, int32& BytesRead, FInternetAddr& Source, FInternetAddr& Destination, ESocketReceiveFlags::Type Flags = ESocketReceiveFlags::None) override;
protected:
LPFN_WSARECVMSG WSARecvMsg = nullptr;
};
#endif //PLATFORM_HAS_BSD_SOCKET_FEATURE_WINSOCKETS && (PLATFORM_HAS_BSD_SOCKETS || PLATFORM_HAS_BSD_IPV6_SOCKETS