The getsockopt and setsockopt methods read and set UDT options, respectively.
Name | Type | Meaning | Comment |
UDT_MSS | int | Maximum packet size (bytes). | Including all UDT, UDP, and IP headers. Default 1500 bytes. |
UDT_SNDSYN | bool | Synchronization mode of data sending. | true for blocking sending; false for non-blocking sending. Default true. |
UDT_RCVSYN | bool | Synchronization mode for receiving. | true for blocking receiving; false for non-blocking receiving. Default true. |
UDT_CC | CCCFactory* CCC** |
User defined congestion control algorithm. | optval is a pointer to a CCC Factory class instance (for setsockopt). optval is a pointer of pointer to a CCC class instance (for getsockopt). |
UDT_FC | int | Maximum window size (packets) | Default 25600. Do NOT change this unless you know what you are doing. Must change this before modifying the buffer sizes. |
UDT_SNDBUF | int | UDT sender buffer size limit (bytes) | Default 10MB (10240000). |
UDT_RCVBUF | int | UDT receiver buffer size limit (bytes) | Default 10MB (10240000). |
UDP_SNDBUF | int | UDP socket sender buffer size (bytes) | Default 1MB (1024000). |
UDP_RCVBUF | int | UDP socket receiver buffer size (bytes) | Default 1MB (1024000). |
UDT_LINGER | linger | Linger time on close(). | Default 180 seconds. |
UDT_RENDEZVOUS | bool | Rendezvous connection setup. | Default false (no rendezvous mode). |
UDT_SNDTIMEO | int | Sending call timeout (milliseconds). | Default -1 (infinite). |
UDT_RCVTIMEO | int | Receiving call timeout (milliseconds). | Default -1 (infinite). |
UDT_REUSEADDR | bool | Reuse an existing address or create a new one. | Default true (reuse). |
UDT_MAXBW | int64_t | Maximum bandwidth that one single UDT connection can use (bytes per second). | Default -1 (no upper limit). |
UDT_STATE | int32_t | Current status of the UDT socket. | Read only. |
UDT_EVENT | int32_t | The EPOLL events available to this socket. | Read only. |
UDT_SNDDATA | int32_t | Size of pending data in the sending buffer. | Read only. |
UDT_RCVDATA | int32_t | Size of data available to read, in the receiving buffer. | Read only. |
On success, 0 is returned and proper UDT option is set or read; otherwise UDT::ERROR is returned and the specific error information can be retrieved using getlasterror.
Error Name | Error Code | Comment |
EBOUNDSOCK | 5001 | the sepecific option cannot be set on a bound socket. |
ECONNSOCK | 5002 | the specific option cannot be set on a connected socket. |
EINVPARAM | 5003 | the option value or length is invalid. |
EINVSOCK | 5004 | u is an invalid UDT socket. |
the setsockopt method sets the UDT option optName with the value of optval. The parameter of optlen is checked to verify the goodness of the option value. Not all options can be set at any state of UDT. In fact, most options must be set before bind or connect is called, because these values are necessary to initialize certain data structures when a UDT connection is created.
The getsockopt method reads the current option value. The value is written into the buffer pointed by optval and the length is returned in optlen.