UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Icmp.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Containers/Array.h"
6#include "CoreMinimal.h"
8#include "HAL/Platform.h"
10
26
28{
29 switch (ResponseStatus)
30 {
31 case EIcmpResponseStatus::Success: return TEXT("Success");
32 case EIcmpResponseStatus::Timeout: return TEXT("Timeout");
33 case EIcmpResponseStatus::Unreachable: return TEXT("Unreachable");
34 case EIcmpResponseStatus::Unresolvable: return TEXT("Unresolvable");
35 case EIcmpResponseStatus::InternalError: return TEXT("InternalError");
36 case EIcmpResponseStatus::NotImplemented: return TEXT("NotImplemented");
37 default: return TEXT("Unknown");
38 }
39}
40
59
62
64{
65 FString Address;
67
69 : Port(0)
70 {}
71
74 , Port(InPort)
75 {}
76}; // struct FIcmpTarget
77
90
92{
93 Invalid,
94 Success,
95 Failure,
97};
98
109
112
113
114// Simple ping interface that sends an ICMP packet to the given address and returns timing info for the reply if reachable
115class FIcmp
116{
117 public:
118
134
144 {
146 {
147 ResultDelegate.ExecuteIfBound(Result);
148 });
149 }
150};
151
152// Simple ping interface that sends an ICMP packet over UDP to the given address and returns timing info for the reply if reachable
154{
155public:
156
171 static ICMP_API void UDPEcho(const FString& TargetAddress, float Timeout, FIcmpEchoResultCallback HandleResult);
172
182 {
184 {
185 ResultDelegate.ExecuteIfBound(Result);
186 });
187 }
188
205 static ICMP_API void UDPEchoMany(const TArray<FIcmpTarget>& Targets, float Timeout, FIcmpEchoManyCompleteCallback CompletionCallback);
206
223 static ICMP_API void UDPEchoMany(const TArray<FIcmpTarget>& Targets, float Timeout, FIcmpEchoManyCompleteDelegate CompletionDelegate);
224};
225
226
227#define EnumCase(Name) case EIcmpResponseStatus::Name : return TEXT(#Name)
228static const TCHAR* ToString(EIcmpResponseStatus Status)
229{
230 switch (Status)
231 {
238 default:
239 return TEXT("Unknown");
240 }
241}
242
243#undef EnumCase
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define TEXT(x)
Definition Platform.h:1272
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
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
TFunction< void(FIcmpEchoManyCompleteResult)> FIcmpEchoManyCompleteCallback
Definition Icmp.h:110
const TCHAR * LexToString(EIcmpResponseStatus ResponseStatus)
Definition Icmp.h:27
TFunction< void(FIcmpEchoResult)> FIcmpEchoResultCallback
Definition Icmp.h:60
EIcmpResponseStatus
Definition Icmp.h:12
EIcmpEchoManyStatus
Definition Icmp.h:92
#define EnumCase(Name)
Definition Icmp.h:227
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Icmp.h:116
static void IcmpEcho(const FString &TargetAddress, float Timeout, FIcmpEchoResultDelegate ResultDelegate)
Definition Icmp.h:143
static ICMP_API void IcmpEcho(const FString &TargetAddress, float Timeout, FIcmpEchoResultCallback HandleResult)
Definition Icmp.cpp:136
Definition Icmp.h:154
static void UDPEcho(const FString &TargetAddress, float Timeout, FIcmpEchoResultDelegate ResultDelegate)
Definition Icmp.h:181
static ICMP_API void UDPEchoMany(const TArray< FIcmpTarget > &Targets, float Timeout, FIcmpEchoManyCompleteCallback CompletionCallback)
Definition UDPPing.cpp:1261
static ICMP_API void UDPEcho(const FString &TargetAddress, float Timeout, FIcmpEchoResultCallback HandleResult)
Definition UDPPing.cpp:1550
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition Icmp.h:100
EIcmpEchoManyStatus Status
Definition Icmp.h:102
FIcmpEchoManyCompleteResult()
Definition Icmp.h:104
TArray< FIcmpEchoManyResult > AllResults
Definition Icmp.h:101
Definition Icmp.h:79
FIcmpEchoManyResult(const FIcmpEchoResult &InEchoResult, const FIcmpTarget &InTarget)
Definition Icmp.h:84
FIcmpTarget Target
Definition Icmp.h:81
FIcmpEchoManyResult()=default
FIcmpEchoResult EchoResult
Definition Icmp.h:80
Definition Icmp.h:42
EIcmpResponseStatus Status
Definition Icmp.h:44
FString ReplyFrom
Definition Icmp.h:48
float Time
Definition Icmp.h:50
FIcmpEchoResult()
Definition Icmp.h:52
FString ResolvedAddress
Definition Icmp.h:46
Definition Icmp.h:64
FString Address
Definition Icmp.h:65
int32 Port
Definition Icmp.h:66
FIcmpTarget()
Definition Icmp.h:68
FIcmpTarget(const FString &InAddress, int32 InPort)
Definition Icmp.h:72