Stream sockets

You can send (by definition) an unlimited amount of data. If it cannot all be buffered or sent at once or if the receiver cannot receive it all at once, the send will either block (for blocking sockets) or return a partial count of bytes written or EAGAIN (for nonblocking sockets).

Datagram sockets

It depends on the protocol. UDPv4 supports only 65536 bytes per datagram. UDPv6 supports much more. UNIX domain sockets probably support still more: you are probably just limited by memory in this case.