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