c++でイベント駆動っぽくTCPを書いた
思いつきでc++でイベント駆動っぽいTCPのクラス書いてみた
これでTCPのサーバーとクライアント両方ともイベント駆動っぽくかける
試しにエコーサーバ
サーバ
#include <iostream> #include "TCPEventServer.h" int main(void) { eventTCP server(5432); server.on("connect", [](Socket *sock){ std::cout << "connect" << std::endl; sock->on("echo", [sock](std::string data){ std::cout << data << std::endl; sock->emit("echo", data); }); sock->on("disconnect", [sock](std::string data){ std::cout << "disconnect" << std::endl; sock->close(); }); }); server.listen(5); return 0; }
クライアント
#include <iostream> #include "TCPEventClient.h" int main(void) { TCPEventClient client; client.connect("127.0.0.1", 5432); client.on("connect", [](Socket *sock){ std::cout << "connect" << std::endl; sock->on("echo", [sock](std::string data){ std::cout << data << std::endl; }); sock->on("disconnect", [sock](std::string data){ sock->close(); }); sock->emit("echo", "echo server"); }); return 0; }