游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2107|回复: 0

ProudNet使用方法#2:发送和接收消息

[复制链接]

29

主题

38

帖子

384

积分

中级会员

Rank: 3Rank: 3

积分
384
QQ
发表于 2016-4-27 11:32:40 | 显示全部楼层 |阅读模式
ProudNet 介绍
ProudNet是研究游戏软件开发的游戏服务端 &网络引擎。

服务器与客户端连接成功即可发送和接收消息。
调用SendUserMessage
首先,参数是“发送给谁”。 添加一个HostID或者HostID数组即可,如果加入数组一次性同时传输多个,这被称作多址传输。
其次,“以什么方式发送”。 这被称作RmiContext.  
可靠性发送称作(reliable , 忽略可靠性无延迟发送称作(unreliable) 这两项常常被使用。
最后,“发送什么”。把要发送的数据加入字节数组中即可。

参考ProudNet使用方法#1NetClient c, NetServer s

1.  [C++]   
2.      
3.  unsigned char data[100];   
4.      
5.  c->SendUserMessage(HostID_Server,   
6.      RmiContext::ReliableSend, data, 100);   
7.  s->SendUserMessage(ClientHostID,   
8.      RmiContext::UnreliableSend, data, 50);   
9.      
10. HostID sendTo[10];   
11. s->SendUserMessage(sendTo, 10,   
12.     RmiContext::UnreliableSend, data, 30);   
13.     
14. [C#]   
15.     
16. var data = new byte[100];   
17. c.SendUserMessage(HostID.Server,   
18.     RmiContext.ReliableSend, data);   
19.     
20. var sendTo = new HostID[2];   
21. s.SendUserMessage(sendTo,   
22.     RmiContext.UnreliableSend, data);


发送信息后接收数据部分在 OnReceiveUserMessage 操作。
第一“从哪里接收”即,HostID.
第二“如何接收”,RmiContex.
第三“接收什么”,接收二进制数据。

1.  [C++]   
2.   
3.  c->Set_OnReceiveUserMessage([...]  
4.      (HostID sender, const RmiContext& rmiContext,   
5.      uint8_t* payload, int payloadLength)   
6.      {  
7.          ... // 接收事件处理。
8.      });  
9.      
10. [C#]   
11.     
12. c.ReceiveUserMessageHandler =   
13.     (sender, rmiContext, payload) => {  
14.     {  
15.         ... // 接收事件处理。
16.     };  
17.      


ProudNet 接收数据 的方式是多样化的。
可添加更多的选项使用如:加密,压缩功能。在中国和东南亚网络环境下P2P 限制多传播,通信量过大导致的问题,通过学习使用ProudNet 都可以得到有效的解决。对于这些生硬的数据进行接收传输环境的构建是相当复杂的,可以通过ProudNet 中的RMI 强化功能来代替这一切。
总结:
1.    调用  SendUserMessage。
2.    调用 OnReceiveUserMessage。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-5-8 16:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表