1 /** @file
2   Implement the send API.
3 
4   Copyright (c) 2011, Intel Corporation
5   All rights reserved. This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #include <SocketInternals.h>
16 
17 
18 /**
19   Send data using a network connection.
20 
21   The send routine queues data to the network for transmission.
22   This routine is typically used for SOCK_STREAM sockets where the target
23   system was specified in the ::connect call.
24 
25   The
26   <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/send.html">POSIX</a>
27   documentation is available online.
28 
29   @param [in] s         Socket file descriptor returned from ::socket.
30 
31   @param [in] buffer    Address of a buffer containing the data to send.
32 
33   @param [in] length    Length of the buffer in bytes.
34 
35   @param [in] flags     Message control flags
36 
37   @return     This routine returns the number of data bytes that were
38               sent and -1 when an error occurs.  In the case of
39               an error, ::errno contains more details.
40 
41  **/
42 ssize_t
send(int s,CONST void * buffer,size_t length,int flags)43 send (
44   int s,
45   CONST void * buffer,
46   size_t length,
47   int flags
48   )
49 {
50   //
51   //  Send the data
52   //
53   return sendto ( s, buffer, length, flags, NULL, 0 );
54 }
55