使用UE4 TCP Socket Plugin 插件 与报警传感器TCP链接
其中使用7E FF 06 0D 00 00 00 FE ER EF 通讯指令 使传感器播放声音(报警器不响)
使用网络调试助手建立服务器 与UE 链接, 服务器HEX接收信息 收到的是:37 45 20 46 46 20 30 36 20 30 44 20 30 30 20 30 30 20 30 30 20 46 45 20 45 45 20 45 46, 求解决方法UE里向服务器以16进制格式发送
![](https://profile-avatar.csdnimg.cn/034675fc9bf84bdabb1da5b8d47a9ff9_danquixote.jpg!4)
虚幻TCP协议/如何以16进制发送
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- weixin_42846454 2023-04-12 14:20关注
在 TCP Socket Actor 组件中,设置连接的服务器地址和端口。
在需要发送数据的事件中,调用 TCP Socket Actor 组件的 Send Bytes 方法,将需要发送的16进制数据转换为字节数组,并传递给该方法。
以下是使用UE4 TCP Socket Plugin 插件向服务器发送16进制数据的示例代码:
#include "MyActor.h" #include "TCPActor.h" #include "Kismet/KismetStringLibrary.h" void AMyActor::SendHexData() { // 获取需要发送的16进制数据 FString HexData = "7EFF060D000000FEEREF"; // 将16进制字符串转换为字节数组 TArray<uint8> ByteArray; UKismetStringLibrary::Conv_HexStringToBytes(HexData, ByteArray); // 获取 TCP Socket Actor 组件 UTCPActor* TCPActor = Cast<UTCPActor>(GetComponentByClass(UTCPActor::StaticClass())); // 发送字节数组 if (TCPActor && TCPActor->IsConnected()) { TCPActor->SendBytes(ByteArray); } }
在该示例代码中,首先使用 Conv_HexStringToBytes 方法将16进制字符串转换为字节数组,然后通过 Send Bytes 方法发送字节数组。
在上述示例代码中,需要注意的是,16进制字符串的格式应该为没有空格的连续字符,如示例代码中的 "7EFF060D000000FEEREF",而非网络调试助手中显示的每两个字符之间有一个空格的格式。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 w10部分软件不能联网
- ¥15 关于安装hbase的问题(操作系统-windows)
- ¥15 cadence617版本,如何做一个参数可调的反相器
- ¥15 novnc连接pve虚拟机报错安全协议不支持262
- ¥15 设备精度0.03给多少公差能达到CPK1.33
- ¥15 qt+ffmpeg报错non-existing PPS 0 referenced
- ¥15 FOC simulink
- ¥50 MacOS 使用虚拟机安装k8s
- ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
- ¥25 oracle中的正则匹配