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