6 #include "../ip_end_point.h" 7 #include "../../threading/manual_reset_event.h" 8 #include "../../iequatable.h" 9 #include "../../object.h" 10 #include "../../ustring.h" 46 explicit async_result_socket(
std::any async_state) : async_state_(async_state) {}
47 std::any async_state()
const noexcept
override {
return async_state_;}
49 bool completed_synchronously()
const noexcept
override {
return false;}
50 bool is_completed()
const noexcept
override {
return is_completed_;};
53 bool is_completed_ =
false;
56 std::exception_ptr exception_;
59 class async_result_receive :
public async_result_socket {
61 explicit async_result_receive(
std::any async_state) : async_result_socket(async_state) {}
62 std::vector<xtd::byte> buffer_;
66 class async_result_send :
public async_result_socket {
68 explicit async_result_send(
std::any async_state) : async_result_socket(async_state) {}
69 size_t number_of_bytes_sent_ = 0;
143 size_t available()
const;
177 bool enable_broadcast()
const;
248 void allow_nat_traversal(
bool allowed);
288 std::shared_ptr<xtd::iasync_result> begin_send(
const std::vector<xtd::byte>& dgram,
size_t bytes,
xtd::async_callback callback,
const std::any& state);
369 size_t end_send(std::shared_ptr<xtd::iasync_result> async_result);
371 bool equals(
const udp_client&
s)
const noexcept
override;
447 size_t send(
const std::vector<xtd::byte>& dgram,
size_t bytes,
const xtd::ustring& hostname,
uint16 port);
469 size_t send(
const std::vector<xtd::byte>& dgram,
size_t bytes);
479 bool active()
const noexcept;
490 std::shared_ptr<data> data_;
Implements the Berkeley sockets interface.
Definition: socket.h:71
Provides an Internet Protocol (IP) address.
Definition: ip_address.h:35
delegate< void(async_result ar)> async_callback
References a method to be called when a corresponding asynchronous operation completes.
Definition: delegate.h:34
Represents the status of an asynchronous operation.
Definition: iasync_result.h:22
An IP multicast loopback.
Identifies a network address. This is an abstract class.
Definition: end_point.h:25
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
std::shared_ptr< xtd::iasync_result > async_result
Represents the status of an asynchronous operation.
Definition: async_result.h:16
Enables a socket to be bound for exclusive access.
uint_least16_t uint16
Represents a 16-bit unsigned integer.
Definition: types.h:228
Represents a network endpoint as an IP address and a port number.
Definition: ip_end_point.h:21
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:46
socket_error
Defines error codes for the xtd::net::sockets::socket class.
Definition: socket_error.h:28
Do not fragment IP datagrams.
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition: iequatable.h:18
Supports datagrams, which are connectionless, unreliable messages of a fixed (typically small) maximu...
A socket connect operation.
Indicates that all styles except allow_binary_specifier, allow_octal_specifier and allow_hex_specifie...
A socket receive operation.
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes...
Definition: object.h:32
Provides User Datagram Protocol (UDP) network services.
Definition: udp_client.h:43
uint_least8_t byte
Represents a 8-bit unsigned integer.
Definition: types.h:39
Contains xtd::net::sockets::socket class.
uint_least32_t uint32
Represents a 32-bit unsigned integer.
Definition: types.h:239
address_family
Specifies the addressing scheme that an instance of the xtd::net::sockets::socket class can use...
Definition: address_family.h:28
Represents a thread synchronization event that, when signaled, must be reset manually. This class cannot be inherited.
Definition: manual_reset_event.h:33
Encapsulates operating system specific objects that wait for exclusive access to shared resources...
Definition: wait_handle.h:48