ObjectDeliverer
ObjectDeliverer copied to clipboard
ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint).
ObjectDeliverer
UE4 Marketplace
https://www.unrealengine.com/marketplace/ja/slug/objectdeliverer
Description
ObjectDeliverer is a data transmission / reception library for Unreal Engine (C ++, Blueprint).
It has the following features.
- Communication protocol, data division rule, serialization method can be switched by part replacement.
- Available for both C ++ and Blueprint
Relationship between branch and UE4 Engine version
The master branch supports UE4 4.25 and above. 4.24 and below cannot be built. if you use 4.24 or below, please use the "lessthan_425" branch.
| Engine Version | branch |
|---|---|
| 4.25 or adove | master |
| 4.24 or less | lessthan_425 |
Communication protocol
The following protocols can be used with built-in. You can also add your own protocol.
- TCP/IP Server(Connectable to multiple clients)
- TCP/IP Client
- UDP(Sender)
- UDP(Receiver)
- Shared Memory(Windows Only)
- LogFile Writer
- LogFile Reader
Data division rule
The following rules are available for built-in split rules of transmitted and received data.
-
FixedSize
Example) In the case of fixed 1024 bytes
-
Header(BodySize) + Body
Example) When the size area is 4 bytes

-
Split by terminal symbol
Example) When 0x00 is the end
Serialization method
- Byte Array
- UTF-8 string
- Object(Json)
Installation
- Please clone this repository
- Please copy the Plugins directory to the project folder
- Please activate ObjectDeliverer from Plugins after launching editor
Quick Start
- Create an ObjectDelivererManager
- Create a DeliveryBox(If you wish to send and receive data other than binary)
- Set the send / receive protocol and PacketRule, then start the ObjectDelivererManager

void UMyClass::Start()
{
auto deliverer = UObjectDelivererManager::CreateObjectDelivererManager();
// bind connected event
deliverer->Connected.AddDynamic(this, &UMyClass::OnConnect);
// bind disconnected event
deliverer->Disconnected.AddDynamic(this, &UMyClass::OnDisConnect);
// bind receive event
deliverer->ReceiveData.AddDynamic(this, &UMyClass::OnReceive);
// start deliverer
// + protocol : TCP/IP Server
// + Data division rule : Header(BodySize) + Body
// + Serialization method : Byte Array
deliverer->Start(UProtocolFactory::CreateProtocolTcpIpServer(9099),
UPacketRuleFactory::CreatePacketRuleSizeBody());
}
void UMyClass::OnConnect(UObjectDelivererProtocol* ClientSocket)
{
// send data
TArray<uint8> buffer;
deliverer->Send(buffer);
}
void UMyClass::OnDisConnect(UObjectDelivererProtocol* ClientSocket)
{
// closed
UE_LOG(LogTemp, Log, TEXT("closed"));
}
void UMyClass::OnReceive(UObjectDelivererProtocol* ClientSocket, const TArray<uint8>& Buffer)
{
// received data buffer
}
How to use each function
Look at the Wiki https://github.com/ayumax/ObjectDeliverer/wiki