Mercurial > code
view C++/examples/Socket/stream-server.cpp @ 485:898d8b29a4f1
Switch to lowercase filenames
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 12 Nov 2015 21:53:36 +0100 |
parents | 5a9671dabb15 |
children |
line wrap: on
line source
/* * stream-server -- example of stream server * * Options: * - WITH_PORT (int) which port to use (default: 12000) * - WITH_SSL (bool) true to use SSL (default: false) */ #include <iostream> #include "Sockets.h" #if !defined(WITH_PORT) # define WITH_PORT 12000 #endif #if defined(WITH_SSL) using Server = net::StreamServer<net::address::Ip, net::protocol::Tls>; using Connection = net::StreamConnection<net::address::Ip, net::protocol::Tls>; #else using Server = net::StreamServer<net::address::Ip, net::protocol::Tcp>; using Connection = net::StreamConnection<net::address::Ip, net::protocol::Tcp>; #endif int main() { #if defined(WITH_SSL) net::protocol::Tls protocol; protocol.setVerify(false); protocol.setPrivateKey("test.key"); protocol.setCertificate("test.crt"); protocol.setMethod(net::ssl::Tlsv1); Server server{std::move(protocol), net::address::Ip{"*", WITH_PORT}}; #else Server server{net::protocol::Tcp{}, net::address::Ip{"*", WITH_PORT}}; #endif server.setConnectionHandler([] (const std::shared_ptr<Connection> &client) { std::cout << "server: new client connected" << std::endl; client->send("Welcome to our server dude"); }); server.setReadHandler([] (const std::shared_ptr<Connection> &, const std::string &buffer) { std::cout << "server: received: " << buffer << std::endl; }); server.setWriteHandler([] (const std::shared_ptr<Connection> &, const std::string &buffer) { std::cout << "server: sent: " << buffer << std::endl; }); server.setDisconnectionHandler([] (const std::shared_ptr<Connection> &) { std::cout << "server: client disconnected" << std::endl; }); while (true) { server.poll(-1); } return 0; }