当前位置:
首页 >
Netplus收发消息的基本流程
发布时间:2023/12/18
65
豆豆
生活随笔
收集整理的这篇文章主要介绍了
Netplus收发消息的基本流程
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
本文为初见,Netplus快速开始之PingPong Example系列第四篇
启动一个服务 (server端):
Code Example:
这个例子,我们暂时使用一个Netplus自带的 channel handler。
netp::handler:echo:当收到来自对端的消息的时候,原样回复。在这个例子中, 我们监听tcp://0.0.0.0:22310,当收新的连接Accept成功后,为其添加一个叫echo的handler
NRP<netp::channel_listen_promise> f_listen = netp::socket::listen_on( "tcp://0.0.0.0:22310", [](NRP<netp::channel> const& ch) { //once a new channel accepted, we add a echo handler which reply what it receivesch->pipeline()->add_last(netp::make_ref<netp::handler::echo>()); }); int listenrt = std::get<0>(f_listen->get()); if(listenrt != netp::OK) {//do ... } //...连接一个服务(client端):
Code Example:
我们使用一个Netplus自带的channel handler
netp::handler::dump_in_len:当收到来自对端的消息的时候,在屏幕打印出消息的长度在这个例子中,我们拨号至tcp://127.0.0.1:22310,如果拨号成功,我们向对端发送hello。当收到来自对端的回复时,在屏幕上打印收到的消息的长度。
std::string url = "tcp://127.0.0.1:22310"; NRP<netp::channel_dial_promise> f = netp::socket::dial(url, [url](NRP<netp::channel> const& ch) {ch->pipeline()->add_last(netp::make_ref<netp::handler::dump_in_len>()); });int dialrt = std::get<0>(f->get()); if(dialrt != netp::OK) {return dialrt; }NRP<netp::channel> ch = std::get<1>(f->get()); NRP<netp::packet> write_bytes = netp::make_ref<netp::packet>(); write_bytes->write("hello",5);NRP<netp::promise<int>> write_p = ch->ch_write(write_bytes); write_p->if_done([](int rt){if(rt == netp::OK) {//WRITE SUCCEED..} });
注意到没,服务器,客户端,都是如下三步曲
So easy!
下一篇,我们将正式介绍 PingPong Example。
写代码的冰冰
总结
以上是生活随笔为你收集整理的Netplus收发消息的基本流程的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: AI-语音处理理论和应用-语音识别、语音
- 下一篇: java页面标签span_span标签跳