服务器与客户端连接成功即可发送和接收消息。 调用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。 |
转载于:https://my.oschina.net/ProudNet/blog/693444