GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
socket_fastopen_connect6(3) FreeBSD Library Functions Manual socket_fastopen_connect6(3)

socket_fastopen_connect6 - make a TCP connection and send some data

#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);

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

  • >=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 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 connection 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.

#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);

socket_connect6(3), socket_fastopen_connect4(3), socket_fastopen(3)

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.