.th TcpSend III 4/21/86
.sh "NAME"
TcpSend - transmit data to a TCP connection
.sh "C SYNOPSIS"
.nf
 int         Loc_Name;
 char        *Buf_Addr;
 int         Buf_Size;
 int         Buf_Flag;
 int         Async_ID;
 int         (*Async_SR)();
 int         Time_Out;
 int         stat;
 . . .
 stat = TcpSend (Loc_Name,
                 Buf_Addr,
                 Buf_Size,
                 Buf_Flag,
                 Async_ID,
                 Async_SR,
                 Time_Out);
.fi
.sh "DESCRIPTION"
The TcpSend primitive is used to transmit data to a TCP connection.
.s3
The Loc_Name parameter is the local connection name associated with a
specific TCP connection.  This identifier was returned from a
previously successful TcpOpen primitive call to establish the
connection.
.s3
The Buf_Addr parameter is an address of the buffer to be transmitted on
the connection.  The Buf_Size is the number of bytes to send within
this buffer.  Any flags associated with this data buffer must be set in
the buffer flag parameter, Buf_Flag.  For example, it is suggested that
each data buffer to be sent be associated with the EOLMARK buffer flag
for compatiability with other TCP implementations.
.s3
The Time_Out parameter specifies the amount of time (ticks) which this
TcpSend request may be pending.  
.s3
The asynchronous service handling parameters, Async_ID and Async_SR,
are currently not implemented by the TCP Daemon.  These parameters must
be set to null (0) until this feature has been incorporated within the
daemon.
.s3
The application process will be suspended until the data has been
successfully acknowledged by the remote TCP, a time-out condition has
expired or the connection is terminated by the remote TCP.  Under most
circumstances, the number of bytes transmitted will not coincide with
the number of bytes contained within an actual network message.  This
is due to the data flow policies governing TCP connections.  In fact,
the outgoing data to the remote TCP will be segmentized into variable
size data chunks with each chunk being transmitted as part of a
separate network message.
.sh "EXCEPTIONS"
TcpSend
returns the following error codes:
.lp 10 0
.nf
XtcpOK    (0)      Successful
XtcpNoX   (3)      Non-existent TCP Daemon
XtcpNoNSS (6)      Non-existent TCP Connection
XtcpLock  (10)     Can not lock Network Sharable Segment
XtcpXbusy (8)      Exceeded pending TcpSend's per user limit
XtcpAsync (7)      Asynchronous request ack'ed by daemon
.fi
.i0
.sh "FILES"
.nf
/ksb/include/tcp.h     TCP Interface Definitions for C
/ksb/lib/TCP.a   TCP Interface Library for C
.fi
.sh "SEE ALSO"
TcpOpen (III)

