xtd - Reference Guide  0.1.0
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
Loading...
Searching...
No Matches
Classes | Enumerations
xtd::net::sockets Namespace Reference

Definition

The xtd::net::sockets namespace provides a managed implementation of the Berkeley Sockets interface for developers who need to tightly control access to the network.

Classes

class  ip_packet_information
 Gets the network interface information that is associated with a call to xtd::net::sockets::socket::receive_message_from or xtd::net::sockets::socket::end_receive_message_from. More...
 
class  ip_v6_multicast_option
 Contains option values for joining an IPv6 multicast group. More...
 
class  linger_option
 Specifies whether a xtd::net::sockets::socket will remain connected after a call to the xtd::net::sockets::socket::close or xtd::net::sockets::tcp_client::close methods and the length of time it will remain connected, if data remains to be sent. More...
 
class  multicast_option
 Contains IPAddress values used to join and drop multicast groups. More...
 
class  network_stream
 Provides the underlying stream of data for network access. More...
 
class  send_packets_element
 Represents an element in a xtd::net::sockets::send_packets_element array. More...
 
class  socket
 Implements the Berkeley sockets interface. More...
 
class  socket_async_event_args
 Represents an asynchronous socket operation. More...
 
class  socket_exception
 The exception that is thrown when a socket error occurs. More...
 
class  socket_information
 Encapsulates the information that is necessary to duplicate a xtd::net::sockets::socket. More...
 
class  tcp_client
 Provides client connections for TCP network services. More...
 
class  tcp_listener
 Listens for connections from TCP network clients. More...
 
class  udp_client
 Provides User Datagram Protocol (UDP) network services. More...
 

Enumerations

enum class  address_family {
  address_family::unknown ,
  address_family::unspecified ,
  address_family::unix ,
  address_family::inter_network ,
  address_family::imp_link ,
  address_family::pup ,
  address_family::chaos ,
  address_family::ns ,
  address_family::ipx ,
  address_family::iso ,
  address_family::osi ,
  address_family::ecma ,
  address_family::data_kit ,
  address_family::ccitt ,
  address_family::sna ,
  address_family::dec_net ,
  address_family::data_link ,
  address_family::lat ,
  address_family::hyper_channel ,
  address_family::apple_talk ,
  address_family::net_bios ,
  address_family::voice_view ,
  address_family::fire_fox ,
  address_family::banyan ,
  address_family::atm ,
  address_family::inter_network_v6 ,
  address_family::cluster ,
  address_family::ieee12844 ,
  address_family::irda ,
  address_family::network_designers ,
  address_family::max
}
 Specifies the addressing scheme that an instance of the xtd::net::sockets::socket class can use. More...
 
enum class  io_control_code : uint64_t {
  io_control_code::enable_circular_queuing ,
  io_control_code::flush ,
  io_control_code::address_list_change ,
  io_control_code::data_to_read ,
  io_control_code::oob_data_read ,
  io_control_code::get_broadcast_address ,
  io_control_code::address_list_query ,
  io_control_code::query_target_pnp_handle ,
  io_control_code::async_io ,
  io_control_code::non_blocking_io ,
  io_control_code::associate_handle ,
  io_control_code::multipoint_loopback ,
  io_control_code::multicast_scope ,
  io_control_code::set_qos ,
  io_control_code::set_group_qos ,
  io_control_code::routing_interface_change ,
  io_control_code::namespace_change ,
  io_control_code::receive_all ,
  io_control_code::receive_all_multicast ,
  io_control_code::receive_all_igmp_multicast ,
  io_control_code::keep_alive_values ,
  io_control_code::absorb_router_alert ,
  io_control_code::unicast_interface ,
  io_control_code::limit_broadcasts ,
  io_control_code::bind_to_interface ,
  io_control_code::multicast_interface ,
  io_control_code::add_multicast_group_on_interface ,
  io_control_code::delete_multicast_group_from_interface ,
  io_control_code::get_extension_function_pointer ,
  io_control_code::get_qos ,
  io_control_code::get_group_qos ,
  io_control_code::translate_handle ,
  io_control_code::routing_interface_query ,
  io_control_code::address_list_sort
}
 Specifies the IO control codes supported by the xtd::net::sockets::socket::io_control method. More...
 
enum class  ip_protection_level {
  ip_protection_level::unspecified ,
  ip_protection_level::unrestricted ,
  ip_protection_level::edge_restricted ,
  ip_protection_level::restricted
}
 A value that enables restriction of an IPv6 socket to a specified scope, such as addresses with the same link local or site local prefix. More...
 
enum class  protocol_family {
  protocol_family::unknown ,
  protocol_family::unspecified ,
  protocol_family::unix ,
  protocol_family::inter_network ,
  protocol_family::imp_link ,
  protocol_family::pup ,
  protocol_family::chaos ,
  protocol_family::ns ,
  protocol_family::ipx ,
  protocol_family::iso ,
  protocol_family::osi ,
  protocol_family::ecma ,
  protocol_family::data_kit ,
  protocol_family::ccitt ,
  protocol_family::sna ,
  protocol_family::dec_net ,
  protocol_family::data_link ,
  protocol_family::lat ,
  protocol_family::hyper_channel ,
  protocol_family::apple_talk ,
  protocol_family::net_bios ,
  protocol_family::voice_view ,
  protocol_family::fire_fox ,
  protocol_family::banyan ,
  protocol_family::atm ,
  protocol_family::inter_network_v6 ,
  protocol_family::cluster ,
  protocol_family::ieee12844 ,
  protocol_family::irda ,
  protocol_family::network_designers ,
  protocol_family::max
}
 Specifies the type of protocol that an instance of the xtd::net::sockets::socket class can use. More...
 
enum class  protocol_type {
  protocol_type::unknown ,
  protocol_type::ip_v6_hop_by_hop_options ,
  protocol_type::unspecified ,
  protocol_type::ip ,
  protocol_type::icmp ,
  protocol_type::igmp ,
  protocol_type::ggp ,
  protocol_type::ip_v4 ,
  protocol_type::tcp ,
  protocol_type::pup ,
  protocol_type::udp ,
  protocol_type::idp ,
  protocol_type::ip_v6 ,
  protocol_type::ip_v6_routing_header ,
  protocol_type::ip_v6_fragment_header ,
  protocol_type::ip_sec_encapsulating_security_payload ,
  protocol_type::ip_sec_authentication_header ,
  protocol_type::icmp_v6 ,
  protocol_type::ip_v6_no_next_header ,
  protocol_type::ip_v6_destination_options ,
  protocol_type::nd ,
  protocol_type::raw ,
  protocol_type::ipx ,
  protocol_type::spx ,
  protocol_type::spx_2
}
 Specifies the protocols that the xtd::net::sockets::socket class supports. More...
 
enum class  select_mode {
  select_mode::select_read ,
  select_mode::select_write ,
  select_mode::select_error
}
 Defines the polling modes for the xtd::net::sockets::socket::poll method. More...
 
enum class  socket_async_operation {
  socket_async_operation::none ,
  socket_async_operation::accept ,
  socket_async_operation::connect ,
  socket_async_operation::disconnect ,
  socket_async_operation::receive ,
  socket_async_operation::receive_from ,
  socket_async_operation::receive_message_from ,
  socket_async_operation::send ,
  socket_async_operation::send_packets ,
  socket_async_operation::send_to
}
 The type of asynchronous socket operation most recently performed with this context object. More...
 
enum class  socket_error {
  socket_error::sock_error ,
  socket_error::success ,
  socket_error::operation_aborted ,
  socket_error::io_pending ,
  socket_error::interrupted ,
  socket_error::access_denied ,
  socket_error::fault ,
  socket_error::invalid_argument ,
  socket_error::too_many_open_sockets ,
  socket_error::would_block ,
  socket_error::in_progress ,
  socket_error::already_in_progress ,
  socket_error::not_socket ,
  socket_error::destination_address_required ,
  socket_error::message_size ,
  socket_error::protocol_type ,
  socket_error::protocol_option ,
  socket_error::protocol_not_supported ,
  socket_error::socket_not_supported ,
  socket_error::operation_not_supported ,
  socket_error::protocol_family_not_supported ,
  socket_error::address_family_not_supported ,
  socket_error::address_already_in_use ,
  socket_error::address_not_available ,
  socket_error::network_down ,
  socket_error::network_unreachable ,
  socket_error::network_reset ,
  socket_error::connection_aborted ,
  socket_error::connection_reset ,
  socket_error::no_buffer_space_available ,
  socket_error::is_connected ,
  socket_error::not_connected ,
  socket_error::shutdown ,
  socket_error::timed_out ,
  socket_error::connection_refused ,
  socket_error::host_down ,
  socket_error::host_unreachable ,
  socket_error::process_limit ,
  socket_error::system_not_ready ,
  socket_error::version_not_supported ,
  socket_error::not_initialized ,
  socket_error::disconnecting ,
  socket_error::type_not_found ,
  socket_error::host_not_found ,
  socket_error::try_again ,
  socket_error::no_recovery ,
  socket_error::no_data
}
 Defines error codes for the xtd::net::sockets::socket class. More...
 
enum class  socket_flags {
  socket_flags::none ,
  socket_flags::out_of_band ,
  socket_flags::peek ,
  socket_flags::dont_route ,
  socket_flags::max_io_vector_length ,
  socket_flags::truncated ,
  socket_flags::control_data_truncated ,
  socket_flags::broadcast ,
  socket_flags::multicast ,
  socket_flags::partial
}
 Specifies socket send and receive behaviors. This enumeration has a flags attribute that allows a bitwise combination of its member values. More...
 
enum class  socket_information_options {
  socket_information_options::none ,
  socket_information_options::non_blocking ,
  socket_information_options::connected ,
  socket_information_options::listening ,
  socket_information_options::use_only_overlapped_io
}
 Describes states for a xtd::net::sockets::socket. This enumeration has a flags attribute that allows a bitwise combination of its member values. More...
 
enum class  socket_option_level {
  socket_option_level::socket ,
  socket_option_level::ip ,
  socket_option_level::ip_v6 ,
  socket_option_level::tcp ,
  socket_option_level::udp
}
 Defines socket option levels for the xtd::net::sockets::socket::set_socket_option and xtd::net::sockets::socket::get_socket_option methods. More...
 
enum class  socket_option_name {
  socket_option_name::debug ,
  socket_option_name::accept_connection ,
  socket_option_name::reuse_address ,
  socket_option_name::keep_alive ,
  socket_option_name::dont_route ,
  socket_option_name::broadcast ,
  socket_option_name::use_loopback ,
  socket_option_name::linger ,
  socket_option_name::out_of_band_inline ,
  socket_option_name::dont_linger ,
  socket_option_name::exclusive_address_use ,
  socket_option_name::send_buffer ,
  socket_option_name::receive_buffer ,
  socket_option_name::send_low_water ,
  socket_option_name::receive_low_water ,
  socket_option_name::send_timeout ,
  socket_option_name::receive_timeout ,
  socket_option_name::error ,
  socket_option_name::type ,
  socket_option_name::max_connections ,
  socket_option_name::ip_options ,
  socket_option_name::header_included ,
  socket_option_name::type_of_service ,
  socket_option_name::ip_time_to_live ,
  socket_option_name::multicast_interface ,
  socket_option_name::multicast_time_to_live ,
  socket_option_name::multicast_loopback ,
  socket_option_name::add_membership ,
  socket_option_name::drop_membership ,
  socket_option_name::dont_fragment ,
  socket_option_name::add_source_membership ,
  socket_option_name::drop_source_membership ,
  socket_option_name::block_source ,
  socket_option_name::unblock_source ,
  socket_option_name::packet_information ,
  socket_option_name::hop_limit ,
  socket_option_name::ip_protection_level ,
  socket_option_name::ip_v6_only ,
  socket_option_name::no_delay ,
  socket_option_name::bsd_urgent ,
  socket_option_name::expedited ,
  socket_option_name::no_checksum ,
  socket_option_name::checksum_coverage ,
  socket_option_name::update_accept_context ,
  socket_option_name::update_connect_context
}
 Defines configuration option names. More...
 
enum class  socket_shutdown {
  socket_shutdown::receive ,
  socket_shutdown::send ,
  socket_shutdown::both
}
 Defines constants that are used by the xtd::net::sockets::socket::shutdown method. More...
 
enum class  socket_type {
  socket_type::unknown ,
  socket_type::stream ,
  socket_type::dgram ,
  socket_type::raw ,
  socket_type::rdm ,
  socket_type::seqpacket
}
 Specifies the type of socket that an instance of the xtd::net::sockets::socket class represents. More...
 
enum class  transmit_file_options {
  transmit_file_options::use_default_worker_thread ,
  transmit_file_options::disconnect ,
  transmit_file_options::reuse_socket ,
  transmit_file_options::write_behind ,
  transmit_file_options::use_system_thread ,
  transmit_file_options::use_kernel_apc
}
 The TransmitFileOptions enumeration defines values used in file transfer requests. More...