FreeBSD Manual Pages
socket_fastopen_connect6(3) Library Functions Manual socket_fastopen_connect6(3) NAME socket_fastopen_connect6 - make a TCP connection and send some data SYNTAX #include <libowfat/socket.h> ssize_t socket_fastopen_connect6(int s, const char ip[16],uint16 port,uint32 scope_id, const char* buf,size_t len); DESCRIPTION socket_fastopen_connect6 attempts to make a connection from TCP socket s to TCP port port on IP address ip. If that succeeds, it attempts to send len bytes from buf. The difference to calling socket_connect6 followed by write is that, on platforms supporting TCP Fast Open, socket_fastopen_connect6 will send the first data packet in the third packet of the TCP handshake, saving one use- less ACK packet in network traffic. This is only useful for protocols where the client sends the first bytes. socket_connect6 may return * >=0, to indicate that the connection succeeded and this many bytes were sent. * -1, setting errno to error_inprogress or error_wouldblock, to indi- cate that the socket is non-blocking * -1, setting errno to something else, to indicate that the connection failed (and failed immediately, if the socket is non-blocking). When a background connection succeeds or fails, s becomes writable; you can use socket_connected to see whether the connection succeeded. If the con- nection failed, socket_connected returns 0, setting errno appropriately. Once a TCP socket is connected, you can use the read and write system calls to transmit data. You can call socket_connect6 without calling socket_bind6. This has the effect as first calling socket_bind6 with IP address :: and port 0. EXAMPLE #include <libowfat/socket.h> int s; char ip[16]; uint16 p; uint32 scope_id; s = socket_tcp6b(); socket_bind6(s,ip,p); socket_fastopen_connect6(s,ip,p,scope_id,"hello",5); SEE ALSO socket_connect6(3), socket_fastopen_connect4(3), socket_fastopen(3) socket_fastopen_connect6(3)
NAME | SYNTAX | DESCRIPTION | EXAMPLE | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libowfat_socket_fastopen_connect6&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
