-
Notifications
You must be signed in to change notification settings - Fork 4
Example UDP‐Client
ANYKS edited this page Nov 25, 2024
·
3 revisions
#include <client/sample.hpp>
using namespace std;
using namespace awh;
class Client {
private:
const fmk_t * _fmk;
const log_t * _log;
public:
void active(const client::sample_t::mode_t mode, client::sample_t * sample){
this->_log->print("%s client", log_t::flag_t::INFO, (mode == client::sample_t::mode_t::CONNECT ? "Connect" : "Disconnect"));
if(mode == client::sample_t::mode_t::CONNECT){
const string message = "Hello World!!!";
sample->send(message.data(), message.size());
}
}
void message(const vector <char> & buffer, client::sample_t * sample){
const string message(buffer.begin(), buffer.end());
this->_log->print("%s", log_t::flag_t::INFO, message.c_str());
sample->stop();
}
public:
Client(const fmk_t * fmk, const log_t * log) : _fmk(fmk), _log(log) {}
};
int32_t main(int32_t argc, char * argv[]){
fmk_t fmk;
log_t log(&fmk);
dns_t dns(&fmk, &log);
client::core_t core(&dns, &fmk, &log);
client::sample_t sample(&core, &fmk, &log);
Client executor(&fmk, &log);
log.name("UDP Client");
log.format("%H:%M:%S %d.%m.%Y");
// sample.mode({client::sample_t::flag_t::NOT_INFO});
core.sonet(awh::scheme_t::sonet_t::UDP);
sample.init(2222, "127.0.0.1");
sample.callback <void (const vector <char> &)> ("message", std::bind(&Client::message, &executor, _1, &sample));
sample.callback <void (const client::sample_t::mode_t)> ("active", std::bind(&Client::active, &executor, _1, &sample));
sample.start();
return EXIT_SUCCESS;
}
copyright © ANYKS