UDT Reference: Functions

send

The send method sends out certain amount of data from an application buffer.

int send(
  UDTSOCKET u,
  const char* buf,
  int len,
  int flags
);
Parameters
u
[in] Descriptor identifying a connected socket.
buf
[in] The buffer of data to be sent.
len
[in] Length of the buffer.
flags
[in] Ignored. For compatibility only.
Return Value

On success, send returns the actual size of data that has been sent. Otherwise UDT::ERROR is returned and specific error information can be retrieved by getlasterror. If UDT_SNDTIMEO is set to a positive value, zero will be returned if no data is sent before the timer expires.

Error Name Error Code Comment
ECONNLOST 2001 connection has been broken.
ENOCONN 2002 u is not connected.
EINVSOCK 5004 u is not an valid socket.
EDGRAMILL 5010 cannot use send in SOCK_DGRAM mode.
EASYNCSND 6001 u is non-blocking (UDT_SNDSYN = false) but buffer space is available for sending.
Description

The send method sends certain amount of data from the application buffer. If the the size limit of sending buffer queue is reached, send only sends a portion of the application buffer and returns the actual size of data that has been sent.

In blocking mode (default), send waits until there is some sending buffer space available. In non-blocking mode, send returns immediately and returns error if the sending queue limit is already limited.

If UDT_SNDTIMEO is set and the socket is in blocking mode, send only waits a limited time specified by UDT_SNDTIMEO option. If there is still no buffer space available when the timer expires, zero will be returned. UDT_SNDTIMEO has no effect for non-blocking socket.

See Also

select, send, sendfile, recvfile