程式碼 需要注意的地方 記得在Build.cs添加Sockets, Networking TcpClient.h virtual bool SocketReceive(); //這裡添加virtual關鍵字是為了未來覆載此方法來實現從封包中拆解出自訂的資料格式 TcpClient.cpp 可在ATcpClient::ATcpClient() {...}建構函式中給予資料成員一個初始值,避免資料異常 若你想同步變數 ATcpClient::ATcpClient() { bReplicates = true; // 啟用同步 } // Replicate void ATcpClient::GetLifetimeReplicatedProps(TArray< FLifetimeProperty > & OutLifetimeProps) const { Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREPLIFETIME(ATcpClient, Tcp_UpdateRate); // 你想同步的變數 } 在UE4停止運作時,確保有刪除Thread與關閉Socket void ATcpClient::EndPlay(const EEndPlayReason::Type EndPlayReason) { if (m_RecvThread != nullptr) { m_RecvThread->Kill(true); delete m_RecvThread; } if (Socket) { Socket->Close(); ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->DestroySocket(Socket); } Super::EndPlay(EndPlayReason); } Byte to String & Byte to float // Byte to String FString(ANSI_TO_TCH...