4 #include "transport_layer.h"
8 class udp
: public transport_layer
{
11 list
<delegate
<void, const ipv4_addr
&, u16
, const buffer
&> > listeners
;
15 void receive(const ipv4_addr
&, const buffer
&);
17 udp() : last_port(49152) { }
19 typedef delegate
<void, const ipv4_addr
&, u16
, const buffer
&> port_listener
;
20 void set_internet_layer(p
<internet_layer
> x
) {
22 down
->listen(17, delegate
<void, const ipv4_addr
&, const buffer
&>::method(this, &udp::receive
));
25 void send(const ipv4_addr
&, u16
, u16
, const buffer
&);
26 void listen(u16
, port_listener
);
27 void remove_listener(u16
, port_listener
);
33 void release_port(int) { }
35 p
<client_socket
> create_client();
36 p
<server_socket
> create_server(int port
);