Create an endpoint for communication
#include <sys/types.h>
#include <sys/socket.h>
int socket( int domain,
int type,
int protocol );
BlackBerry 10.0.0
For more information, see below.
The socket() function creates an endpoint for communication and returns a descriptor.
SOCK_STREAM sockets
SOCK_STREAM sockets are full-duplex byte streams, similar to pipes. A stream socket must be in a connected state before any data may be sent or received on it. To create a connection to another socket, call connect() call.
Once the socket is connected, you can transfer data by using read() and write() or some variant of send() and recv() . When a session has been completed, a close() may be performed. Out-of-band data may also be transmitted (as described in send()) and received (as described in recv()).
The communications protocols used to implement a SOCK_STREAM socket ensure that data isn't lost or duplicated. If a piece of data that the peer protocol has buffer space for can't be successfully transmitted within a reasonable length of time, the connection is considered broken and calls will indicate an error by returning -1 and setting errno to ETIMEDOUT.
SOCK_DGRAM and SOCK_RAW sockets
With SOCK_DGRAM and SOCK_RAW sockets, datagrams can be sent to correspondents named in send() calls. Datagrams are generally received with recvfrom() , which returns the next datagram with its return address.
Using the ioctl() call
You can use the ioctl() call to specify a process group to receive a SIGURG signal when the out-of-band data arrives. The call may also enable nonblocking I/O and asynchronous notification of I/O events via SIGIO.
Socket-level options
The operation of sockets is controlled by socket-level options. These options are defined in the file <sys/socket.h>. Use setsockopt() and getsockopt() to set and get options.
A descriptor referencing the socket, or -1 if an error occurs ( errno is set).
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | No |
| Thread | Yes |