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