=pod

=head1 NAME

BIO_s_socket, BIO_new_socket - socket BIO

=head1 SYNOPSIS

 #include <openssl/bio.h>

 BIO_METHOD *BIO_s_socket(void);

 long BIO_set_fd(BIO *b, int fd, long close_flag);
 long BIO_get_fd(BIO *b, int *c);

 BIO *BIO_new_socket(int sock, int close_flag);

=head1 DESCRIPTION

BIO_s_socket() returns the socket BIO method. This is a wrapper
round the platform's socket routines.

BIO_read() and BIO_write() read or write the underlying socket.
BIO_puts() is supported but BIO_gets() is not.

If the close flag is set then the socket is shut down and closed
when the BIO is freed.

BIO_set_fd() sets the socket of BIO B<b> to B<fd> and the close
flag to B<close_flag>.

BIO_get_fd() places the socket in B<c> if it is not NULL, it also
returns the socket. If B<c> is not NULL it should be of type (int *).

BIO_new_socket() returns a socket BIO using B<sock> and B<close_flag>.

=head1 NOTES

Socket BIOs also support any relevant functionality of file descriptor
BIOs.

The reason for having separate file descriptor and socket BIOs is that on some
platforms sockets are not file descriptors and use distinct I/O routines,
Windows is one such platform. Any code mixing the two will not work on
all platforms.

BIO_set_fd() and BIO_get_fd() are macros.

=head1 RETURN VALUES

BIO_s_socket() returns the socket BIO method.

BIO_set_fd() always returns 1.

BIO_get_fd() returns the socket or -1 if the BIO has not been
initialized.

BIO_new_socket() returns the newly allocated BIO or NULL is an error
occurred.

=head1 SEE ALSO

TBA
