UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)

目录

一、使用UE4建立TCP客户端

二、使用网络调试助手建立服务端

三、基于网络调试助手的服务端与UE客户端通信

四、基于python的TCP服务端与UE客户端通信 


一、使用UE4建立TCP客户端

1.在虚幻商城中搜索socket来下载TCP Socket Plugin插件 UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第1张图片

 2.安装到引擎,目前支持的版本是4.22-4.27和5.0UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第2张图片

 点击安装

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第3张图片

大约30M 

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第4张图片 3.随便打开一个工程,找到编辑-》插件

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第5张图片

 4.点击已启用,然后重启虚幻编辑器

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第6张图片

5.新建蓝图,选择继承自TCPSocketConnection类

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第7张图片

我命名该蓝图为TCPTest_BP

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第8张图片

 6.双击打开TCPTest_BP

在事件图表中建立如下节点。当事件开始运行时与TCP服务端建立连接,这里自己设置服务端ip和port

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第9张图片

 7.添加三个自定义事件

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第10张图片

8.分别命名为断开连接、建立连接和接收信息

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第11张图片 

 9.建立连接时打印“建立连接”,断开连接时打印“断开连接”,接收到信息时,将其转为string类型然后打印UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第12张图片

 

二、使用网络调试助手建立服务端

网络调试助手下载地址:

NetAssist.exe

 下载后打开,协议类型选择TCP Server,ip使用本机地址,端口号与客户端一致,然后点击打开

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第13张图片

 

三、基于网络调试助手的服务端与UE客户端通信

1.首先运行服务端

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第14张图片

 2.将TCPTest_BP拖入视口中

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第15张图片

 3.播放游戏,可以看到右上角打印了建立连接,说明UE与网络调试助手建立了TCP通信

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第16张图片

 4.使用网络调试助手发送信息,可以看到UE4接收到了发送的信息

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第17张图片

 5.点击关闭

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第18张图片

 可以看到UE打印了断开连接

UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)_第19张图片

四、基于python的TCP服务端与UE客户端通信 

 如下代码实现了UE4一旦与python服务端建立连接,服务端就主动发送一条测试信息然后断开通信。

import socket

def main():
    # 创建套接字
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 绑定端口和ip
    tcp_server_socket.bind(("", 6666))

    # 设置套接字为被动监听模式,不能主动发送数据,128为允许接收的最大连接数
    tcp_server_socket.listen(128)

    # 接收客户端连接
    new_client_socket, client_ip_port = tcp_server_socket.accept()

    new_client_socket.send("test".encode())

    tcp_server_socket.close()

if __name__ == '__main__':
    main()

 效果:可以看到当运行游戏后,接收到了服务端发送的信息

你可能感兴趣的:(虚幻4,工具,ue4,tcp/ip,网络)