Shows how to use xtd::net::sockets::socket class.
#include <xtd/net/sockets/socket>
#include <xtd/net/ip_end_point>
#include <xtd/threading/thread>
#include <xtd/as>
#include <xtd/console>
auto main()->int {
auto terminate_app = false;
auto on_server_accept = [&](std::shared_ptr<iasync_result> ar) {
auto socket = as<xtd::net::sockets::socket>(ar->async_state()).end_accept(ar);
while (!terminate_app) {
auto buffer = std::vector<unsigned char>(256);
}
};
auto on_client_connect = [&](std::shared_ptr<iasync_result> ar) {
auto socket = as<xtd::net::sockets::socket>(ar->async_state());
auto counter = 0;
while (!terminate_app) {
socket.
send(std::vector<unsigned char> {str.begin(), str.end()});
}
};
const size_t client_count = 10;
server_socket.listen();
for (auto index = 0_sz; index < client_count; ++index)
server_socket.begin_accept(
async_callback(on_server_accept), server_socket);
for (auto index = 0_sz; index < client_count; ++index) {
}
terminate_app = true;
}