The sockets API includes a variety of calls for transferring data. They all operate similarly, but take different parameters to support different levels of functionality. Some socket calls support scatter-gather communication. Some support only connected sockets while others will work on any socket. Some calls support additional flags to control how data is sent or received. See Data Transfer Calls for a summary of which calls support which options.