UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SocketTypes.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"
7
8// Forward declarations
9class FInternetAddr;
11class FSocket;
12
13
16{
18 None,
20 IPv4,
21 IPv6
22};
23
26{
29}
30
41
50
51
53{
57 enum Type
58 {
63 None = 0,
64
68 Peek = 2,
69
74 WaitAll = 0x100
75 };
76}
77
78
102
107{
111 Read,
112
116 Write,
117
122};
123
124
125
126
131{
139
147};
148
153{
154 None = 0x00000000,
155 RetrieveTimestamps = 0x00000001 // Whether or not to support retrieving timestamps
156};
157
159
160
166{
167 friend struct FUnixRecvMulti;
168 friend class FSocketUnix;
169
170private:
174 struct FRecvData
175 {
178
180 const uint8* Data;
181
183 const uint32* BytesReadPtr;
184
185
186 FRecvData()
187 : Source()
188 , Data(nullptr)
189 , BytesReadPtr(nullptr)
190 {
191 }
192 };
193
194
195private:
198
200 int32 NumPackets;
201
202public:
205
208
209
210private:
221
222
223public:
231 {
232 check(PacketIdx >= 0);
233 check(PacketIdx < NumPackets);
234
235 FRecvData& CurData = Packets.Get()[PacketIdx];
236
237 OutPacket.DataView = {CurData.Data, (int32)*CurData.BytesReadPtr, ECountUnits::Bytes};
238 OutPacket.Address = CurData.Source;
240 }
241
250
255 {
256 return NumPackets;
257 }
258
259
265 SOCKETS_API virtual void CountBytes(FArchive& Ar) const;
266};
#define check(expr)
Definition AssertionMacros.h:314
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 ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
@ SE_NO_ERROR
Definition SocketErrors.h:10
ESocketProtocolFamily
Definition SocketTypes.h:16
ESocketConnectionState
Definition SocketTypes.h:44
@ SCS_Connected
Definition SocketTypes.h:46
@ SCS_ConnectionError
Definition SocketTypes.h:48
@ SCS_NotConnected
Definition SocketTypes.h:45
ESocketType
Definition SocketTypes.h:33
@ SOCKTYPE_Unknown
Definition SocketTypes.h:35
@ SOCKTYPE_Streaming
Definition SocketTypes.h:39
@ SOCKTYPE_Datagram
Definition SocketTypes.h:37
ERecvMultiFlags
Definition SocketTypes.h:153
ESocketShutdownMode
Definition SocketTypes.h:107
ETimestampTranslation
Definition SocketTypes.h:131
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition IPAddress.h:22
Definition NameTypes.h:1680
Definition UnrealTemplate.h:321
Definition SocketsUnix.h:46
Definition Sockets.h:19
Definition SocketSubsystem.h:58
Definition SharedPointer.h:692
Definition UniquePtr.h:107
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
@ Bytes
Definition PacketView.h:39
Definition SocketTypes.h:53
Type
Definition SocketTypes.h:58
@ None
Definition SocketTypes.h:63
@ Peek
Definition SocketTypes.h:68
@ WaitAll
Definition SocketTypes.h:74
Definition SocketTypes.h:80
Type
Definition SocketTypes.h:85
@ WaitForWrite
Definition SocketTypes.h:94
@ WaitForReadOrWrite
Definition SocketTypes.h:99
@ WaitForRead
Definition SocketTypes.h:89
Definition SocketSubsystem.cpp:21
const FLazyName IPv6(TEXT("IPv6"))
Definition SocketTypes.h:28
const FLazyName IPv4(TEXT("IPv4"))
Definition SocketTypes.h:27
Definition PacketView.h:135
Definition PacketView.h:113
Definition SocketTypes.h:166
virtual bool GetPacketTimestamp(int32 PacketIdx, FPacketTimestamp &OutTimestamp) const =0
virtual SOCKETS_API void CountBytes(FArchive &Ar) const
Definition Sockets.cpp:20
void GetPacket(int32 PacketIdx, FReceivedPacketView &OutPacket)
Definition SocketTypes.h:230
const int32 MaxNumPackets
Definition SocketTypes.h:204
const int32 MaxPacketSize
Definition SocketTypes.h:207
friend struct FUnixRecvMulti
Definition SocketTypes.h:167
int32 GetNumPackets() const
Definition SocketTypes.h:254
Definition UnrealTypeTraits.h:351