使用UE4原生模块进行简单UDP广播和数据接收
前言: 最近在学习UE4网络相关知识,尝试学习使用 UDP做一个分布式服务器(后面会出相关文章),这里简单记录一下如何使用 UE4的“Sockets”模块和“Networking”模块进行UDP广播。 操作步骤: 1、首先创建两个空的UE4C++工程(我这里使用的是UE426版本引擎),一个用来广播数据,一个用来接收数据,在两个工程分别创建继承自UObject的类,分别命名为“ UDPSend”和“ UDPRecive”,还需在".build.cs"文件中添加模块“Sockets", “Networking”,示例如下代码所示。 2、为了清晰可见,直接上代码(部分代码是网上粘贴的,我这里只是想记录的同时再复习一遍,也方便自己后续查阅)。 3、编译后启动引擎,将两个基于C++的蓝图类,分别拖入到场景中(用来广播的工程只用创建UDPSend,用来接收的工程只用创建“UDPRecive”)。拖入场景中后,在UDPSend中调用函数“StartUDPSender()”,传入网络套接字、 IP、端口号即可。UDP开启后,可以TICK执行广播数据(调用函数RamaUDPSender_SendString());接收数据的工程也是一样,将对应类拖入场景中,打开蓝图编辑器,先调用函数StartUDPReceiver(),再调用函数DataRecv()。两个工程要同时运行,这样就能广播和接收数据了。 using UnrealBuildTool; public class UDPTest426 : ModuleRules { public UDPTest426(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 PublicDependencyModuleNames....