xref: /aosp_15_r20/external/cronet/net/socket/udp_socket.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2011 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef NET_SOCKET_UDP_SOCKET_H_
6 #define NET_SOCKET_UDP_SOCKET_H_
7 
8 #include "build/build_config.h"
9 
10 #if BUILDFLAG(IS_WIN)
11 #include "net/socket/udp_socket_win.h"
12 #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
13 #include "net/socket/udp_socket_posix.h"
14 #endif
15 
16 namespace net {
17 
18 // UDPSocket
19 // Accessor API for a UDP socket in either client or server form.
20 //
21 // Client form:
22 // In this case, we're connecting to a specific server, so the client will
23 // usually use:
24 //       Open(address_family)  // Open a socket.
25 //       Connect(address)      // Connect to a UDP server
26 //       Read/Write            // Reads/Writes all go to a single destination
27 //
28 // Server form:
29 // In this case, we want to read/write to many clients which are connecting
30 // to this server.  First the server 'binds' to an addres, then we read from
31 // clients and write responses to them.
32 // Example:
33 //       Open(address_family)  // Open a socket.
34 //       Bind(address/port)    // Binds to port for reading from clients
35 //       RecvFrom/SendTo       // Each read can come from a different client
36 //                             // Writes need to be directed to a specific
37 //                             // address.
38 #if BUILDFLAG(IS_WIN)
39 typedef UDPSocketWin UDPSocket;
40 #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
41 typedef UDPSocketPosix UDPSocket;
42 #endif
43 
44 }  // namespace net
45 
46 #endif  // NET_SOCKET_UDP_SOCKET_H_
47