Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
socket_fastopen_connect6(3)Library Functions Manualsocket_fastopen_connect6(3)

NAME
       socket_fastopen_connect6	- make a TCP connection	and send some data

SYNTAX
       #include	<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 useless ACK packet in network traffic.

       This is only useful for protocols where	the  client  sends  the	 first
       bytes.

       socket_connect6 may return

       o      >=0,  to	indicate  that	the connection succeeded and this many
	      bytes were sent.

       o      -1, setting errno	to error_inprogress  or	 error_wouldblock,  to
	      indicate that the	socket is non-blocking

       o      -1,  setting  errno to something else, to	indicate that the con-
	      nection 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 connection failed, socket_connected returns 0, setting errno	appro-
       priately.

       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 <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://www.freebsd.org/cgi/man.cgi?query=socket_fastopen_connect6&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help