#include <xtd/collections/generic/list>
#include <xtd/net/sockets/socket>
#include <xtd/net/ip_end_point>
#include <xtd/threading/thread>
#include <xtd/console>
 
 
auto main() -> int {
  auto terminate_app = false;
  
    auto server_socket = 
socket {address_family::inter_network_v6, socket_type::stream, protocol_type::tcp};
 
    server_socket.listen();
    auto new_socket = server_socket.accept();
    
    while (!terminate_app) {
      auto number_of_byte_received = new_socket.receive(buffer);
      if (number_of_byte_received) console::write_line(string(buffer.begin(), buffer.begin() + number_of_byte_received));
    }
  }};
  
    auto client_socket = 
socket {address_family::inter_network_v6, socket_type::stream, protocol_type::tcp};
 
    client_socket.
connect(ip_address::ip_v6_loopback, 9400);
 
    
    auto counter = 0;
    while (!terminate_app) {
      auto str = string::format("counter={}", ++counter);
      thread::sleep(50_ms);
    }
  }};
 
  server.start();
  client.start();
 
  console::read_key();
  terminate_app = true;
  server.join();
  client.join();
}
 
Represents a strongly typed list of objects that can be accessed by index. Provides methods to search...
Definition list.hpp:71
 
const_iterator begin() const noexcept override
Returns an iterator to the first element of the enumarable.
Definition list.hpp:204
 
Represents a network endpoint as an IP address and a port number.
Definition ip_end_point.hpp:23
 
Implements the Berkeley sockets interface.
Definition socket.hpp:74
 
void bind(const end_point_t &local_end_point)
Associates a xtd::net::sockets::socket with a local endpoint.
Definition socket.hpp:798
 
void connect(const end_point_t &remote_end_point)
Establishes a connection to a remote host.
Definition socket.hpp:819
 
Creates and controls a thread, sets its priority, and gets its status.
Definition thread.hpp:43
 
The xtd::collections::generic namespace contains interfaces and classes that define generic collectio...
Definition comparer.hpp:15
 
The xtd::net::sockets namespace provides a managed implementation of the Berkeley Sockets interface f...
Definition address_family.hpp:16
 
The xtd::net namespace provides a simple programming interface for many of the protocols used on netw...
Definition cookie_exception.hpp:11
 
The xtd::threading namespace provides classes and interfaces that enable multithreaded programming....
Definition abandoned_mutex_exception.hpp:11
 
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10