Unity结合C++开发服务器实现多人游戏(三)
2017-02-16 17:17
411 查看
客户端服务器运作
为连接到所述客户端的服务器必须有一个NetServer对象.
NetServer对象添加到之前建立的服务器中.
在服务器上写ProudNet服务器库请参考Visual
C++ 项目设置.
然后,开始一个NetServer对象在SimpleServer.Run函数中.
之后,启动服务器调用调用NetServer.Start函数.
此函数功能是,作为服务器角色来接收客户端的连接.
客户端输入的服务器端口值和版本进行一致处理.
NetServer不同与NetClient没有FrameMove函数.
存在一个单独的线程池来接收消息或者处理事件.
(注:像NetClient一样运作,设置多种线程模型,改变线程个数等方法)
进行如下操作,当服务器收到客户端的连接时调用NetServer.OnClientJoin函数.
客户端断开时调用OnClientLeave函数.
输出参数info中包含客户端的信息.
Info的成员变量HostID是,连接到服务器的每个客户端的唯一标识符.
现在,让我们开启服务器,运行客户端.
如果,客户端连接服务器成功的话登陆界面会自动消失.
第四篇:Unity结合C++开发服务器实现多人游戏(四)
为连接到所述客户端的服务器必须有一个NetServer对象.
NetServer对象添加到之前建立的服务器中.
在服务器上写ProudNet服务器库请参考Visual
C++ 项目设置.
class SimpleServer { shared_ptr<CNetServer> m_netServer; ... |
m_netServer = shared_ptr<CNetServer>(CNetServer::Create()); |
此函数功能是,作为服务器角色来接收客户端的连接.
CStartServerParameter startConfig; startConfig.m_protocolVersion = g_protocolVersion; startConfig.m_tcpPorts.Add(g_serverPort); startConfig.m_udpPorts.Add(g_serverPort); startConfig.m_allowServerAsP2PGroupMember = true; // [1] m_netServer->Start(startConfig); |
Guid g_protocolVersion = Guid::From({ 0x107b3b66, 0xb7de, 0x4091,{ 0xa5, 0xba, 0x72, 0xca, 0x1a, 0xf5, 0x1a, 0xbc } }); int g_serverPort = 35475; |
存在一个单独的线程池来接收消息或者处理事件.
(注:像NetClient一样运作,设置多种线程模型,改变线程个数等方法)
进行如下操作,当服务器收到客户端的连接时调用NetServer.OnClientJoin函数.
客户端断开时调用OnClientLeave函数.
m_netServer->OnClientJoin = [](CNetClientInfo* info) { cout << "Client " << info->m_HostID << " joined.\n"; }; m_netServer->OnClientLeave = [this](CNetClientInfo* info, ErrorInfo*, const ByteArray&) { cout << "Client " << info->m_HostID << " went out.\n"; } |
Info的成员变量HostID是,连接到服务器的每个客户端的唯一标识符.
现在,让我们开启服务器,运行客户端.
如果,客户端连接服务器成功的话登陆界面会自动消失.
第四篇:Unity结合C++开发服务器实现多人游戏(四)
相关文章推荐
- Unity结合C++开发服务器实现多人游戏(七)
- Unity结合C++开发服务器实现多人游戏(九)
- Unity结合C++开发服务器实现多人游戏(四)
- Unity结合C++开发服务器实现多人游戏(八)
- Unity结合C++开发服务器实现多人游戏(二)
- Unity结合C++开发服务器实现多人游戏(演示)
- Unity结合C++开发服务器实现多人游戏(一)
- Unity结合C++开发服务器实现多人游戏(五)
- Unity结合C++开发服务器实现多人游戏(六)
- html5游戏开发--"动静"结合(一)-动态画面的实现
- Unity游戏开发技巧集锦2.1.3实现效果
- unity游戏开发----unity中自定义比分倒计时实现
- Unity3D研究院之Android NDK编译C/C++结合Unity实现本地数据共享(二十八)
- Unity开发安卓游戏:1.实现移动设备屏幕自适应
- html5游戏开发--"动静"结合(一)-动态画面的实现
- 【南昌】泰豪游戏诚聘C/C++游戏开发、客户端、服务器人员
- html5游戏开发--"动静"结合(一)-动态画面的实现
- html5游戏开发--"动静"结合(一)-动态画面的实现
- unity游戏开发之服务器与客户端或页面流转之自定义交互事件
- 通过Unity引擎可实现小规模的人员开发游戏