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

101 lines
2.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Sockets.h"
#include "SocketSubsystem.h"
//#include "Net/NetworkProfiler.h"
/**
* FRecvMulti
*/
FRecvMulti::FRecvMulti(ISocketSubsystem* SocketSubsystem, int32 InMaxNumPackets, int32 InMaxPacketSize, ERecvMultiFlags InitFlags)
: Packets(MakeUnique<FRecvData[]>(InMaxNumPackets))
, NumPackets(0)
, MaxNumPackets(InMaxNumPackets)
, MaxPacketSize(InMaxPacketSize)
{
}
void FRecvMulti::CountBytes(FArchive& Ar) const
{
Ar.CountBytes(sizeof(*this), sizeof(*this));
// Packets
Ar.CountBytes(MaxNumPackets * sizeof(FRecvData), MaxNumPackets * sizeof(FRecvData));
}
//
// FSocket stats implementation
//
FSocket::FSocket() :
SocketType(SOCKTYPE_Unknown),
SocketDescription(TEXT("")),
SocketProtocol(NAME_None)
{ }
FSocket::FSocket(ESocketType InSocketType, const FString& InSocketDescription, const FName& InSocketProtocol) :
SocketType(InSocketType),
SocketDescription(InSocketDescription),
SocketProtocol(InSocketProtocol)
{ }
/** Virtual destructor. */
FSocket::~FSocket() = default;
bool FSocket::SendTo(const uint8* Data, int32 Count, int32& BytesSent, const FInternetAddr& Destination)
{
// NETWORK_PROFILER(GNetworkProfiler.TrackSocketSendTo(this,Data,BytesSent,Destination));
UE_LOG(LogSockets, Verbose, TEXT("Socket '%s' SendTo %i Bytes"), *SocketDescription, BytesSent );
return true;
}
bool FSocket::Send(const uint8* Data, int32 Count, int32& BytesSent)
{
// NETWORK_PROFILER(GNetworkProfiler.TrackSocketSend(this,Data,BytesSent));
UE_LOG(LogSockets, Verbose, TEXT("Socket '%s' Send %i Bytes"), *SocketDescription, BytesSent );
return true;
}
bool FSocket::RecvFrom(uint8* Data, int32 BufferSize, int32& BytesRead, FInternetAddr& Source, ESocketReceiveFlags::Type Flags)
{
if( BytesRead > 0 )
{
UE_LOG(LogSockets, Verbose, TEXT("Socket '%s' RecvFrom %i Bytes"), *SocketDescription, BytesRead );
}
return true;
}
bool FSocket::Recv(uint8* Data, int32 BufferSize, int32& BytesRead, ESocketReceiveFlags::Type Flags)
{
if( BytesRead > 0 )
{
UE_LOG(LogSockets, Verbose, TEXT("Socket '%s' Recv %i Bytes"), *SocketDescription, BytesRead );
}
return true;
}
bool FSocket::RecvMulti(FRecvMulti& MultiData, ESocketReceiveFlags::Type Flags/*=ESocketReceiveFlags::None*/)
{
return false;
}
bool FSocket::SetRetrieveTimestamp(bool bRetrieveTimestamp/*=true*/)
{
return false;
}
bool FSocket::SetIpPktInfo(bool bEnable)
{
return false;
}
bool FSocket::RecvFromWithPktInfo(uint8* Data, int32 BufferSize, int32& BytesRead, FInternetAddr& Source, FInternetAddr& Destination, ESocketReceiveFlags::Type Flags)
{
return false;
}