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

FreeBSD Manual Pages

  
 
  

home | help
socket_fas...n_connect4(3) Library Functions Manual socket_fas...n_connect4(3)

NAME
       socket_fastopen_connect4	- make a TCP connection	and send some data

SYNTAX
       #include	<libowfat/socket.h>

       ssize_t socket_fastopen_connect4(int s,const char ip[4],uint16 port,
					const char* buf,size_t len);

DESCRIPTION
       socket_fastopen_connect4	 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_connect4 followed by write is that, on
       platforms  supporting TCP Fast Open, socket_fastopen_connect4 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_connect4 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
	      indicate that the	socket is non-blocking

             -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_connect4 without calling  socket_bind4.   This  has
       the  effect  as	first calling socket_bind4 with	IP address 0.0.0.0 and
       port 0.

EXAMPLE
	 #include <libowfat/socket.h>

	 int s;
	 char ip[4];
	 uint16	p;

	 s = socket_tcp4();
	 socket_bind4(s,ip,p);
	 socket_fastopen_connect4(s,ip,p,"hello",5);

SEE ALSO
       socket_connect4(3), socket_fastopen_connect6(3),	socket_fastopen(3)

						    socket_fas...n_connect4(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libowfat_socket_fastopen_connect4&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help