summaryrefslogtreecommitdiff
path: root/modules/io
diff options
context:
space:
mode:
Diffstat (limited to 'modules/io')
-rw-r--r--modules/io/examples/echo_client.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/modules/io/examples/echo_client.cpp b/modules/io/examples/echo_client.cpp
index 4b95158..e827ce0 100644
--- a/modules/io/examples/echo_client.cpp
+++ b/modules/io/examples/echo_client.cpp
@@ -5,6 +5,8 @@
#include "echo.hpp"
+std::string message_content = "Hey there! Sending this message";
+
int main(){
/**
* Create EventLoop
@@ -38,26 +40,33 @@ int main(){
net_addr = std::move(addr);
network.connect(*net_addr).then([&](auto rmt_srv){
async_rmt = saw::heap<saw::async_io_stream>(std::move(rmt_srv));
- async_rmt->write("foo", 3);
+ async_rmt->write(&message_content[0], message_content.size());
- async_rmt->read(&read_data[0], 3, read_data.size()-1);
+ async_rmt->read(&read_data[0], message_content.size(), read_data.size()-1);
async_rmt->read_done().then([&](size_t b){
- std::cout<<"Received bytes:\n"<<std::endl;
+ std::cout<<"Received bytes:\n";
for(uint64_t i = 0; i < b; ++i){
std::cout<<static_cast<char>(read_data[i]);
}
- std::cout<<std::endl;
+ std::cout<<'\n'<<std::endl;
keep_running = false;
}).detach();
async_rmt->on_read_disconnected().then([&](){
keep_running = false;
+ std::cout<<"Disconnected"<<std::endl;
}).detach();
- }).detach();
- }).detach();
+ }).detach([](auto err){
+ std::cerr<<"Couldn't connect to address"<<std::endl;
+ return err;
+ });
+ }).detach([](auto err){
+ std::cerr<<"Couldn't resolve address"<<std::endl;
+ return err;
+ });
wait_scope.poll();
while(keep_running){