udp ue4 通讯_UE4 Sockets多线程TCP通信

转自:https://blog.csdn.net/zilisen/article/details/75007447

一、简介

UE4引擎是提供了Sockets模块和Networking模块的,博主在研究此功能时也是参考的Sockets模块和Networking模块的源码,其中引擎为我们提供了一些实例类很有参考价值,比如Sockets模块中的MultichannelTcpReceiver.h和MultichannelTcpSender.h,Networking模块中的UdpSocketReceiver.h和UdpSocketSender.h。博主的例子就是研究参考了以上代码写出来的。

编译与运行环境

UnrealEngine 4.15 , Visual Studio 2015

实现功能介绍

博主的例子实现的是一个使用Socket多线程TCP通信的客户端。在主线程中发消息,子线程中收消息。当然也能类似的实现两个子线程分别收发消息。Socket相关函数都定义在了GameInstance中,以便我们能在不同场景都能调用。

二、代码实现

服务器代码

此处使用了一个有简单收发功能的服务器,用VS2015新建空项目即可:

//SocketTest.cpp: Defines the entry point for the console application

#include#include#include#include#include

#pragma comment(lib, "WS2_32.lib")

using namespacestd;intmain()

{

WSADATA wsaData;

SOCKET serverSock;

SOCKADDR_IN serverAddr;

SOCKET clientSock;

SOCKADDR_IN clientAddr;

cout<< "Server Start!" <

int err = WSAStartup(MAKEWORD(2, 2), &wsaData);if (0 !=err)

{

cout<< "WSAStartup failed!" <

}//构造监听SOCKET,流式SOCKET

serverSock = socket(AF_INET, SOCK_STREAM, 0);//配置监听地址和端口

serverAddr.sin_family =AF_INET;

serverAddr.sin_port= htons(4399); //本地监听端口:4399

serverAddr.sin_addr.S_un.S_addr =INADDR_ANY;//绑定SOCKET

int retVal = bind(serverSock, (SOCKADDR*)&serverAddr, sizeof(serverAddr));if (SOCKET

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值