0% found this document useful (0 votes)
63 views15 pages

Socket: Socket - Create An Endpoint For Communication

Socket functions allow processes to perform network I/O. The socket() function creates an endpoint for communication. connect() establishes a connection between a client and server. bind() assigns an address to a socket. listen() converts an unconnected socket to a passive socket. accept() returns completed connections from the listen queue. send() and recv() send and receive data over connected sockets.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views15 pages

Socket: Socket - Create An Endpoint For Communication

Socket functions allow processes to perform network I/O. The socket() function creates an endpoint for communication. connect() establishes a connection between a client and server. bind() assigns an address to a socket. listen() converts an unconnected socket to a passive socket. accept() returns completed connections from the listen queue. send() and recv() send and receive data over connected sockets.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

socket

socket - create an endpoint for


communication
• The socket Function
• To perform network I/O, the first thing a
process must do is, call the socket function,
specifying the type of communication protocol
desired and protocol family, etc.
• #include <sys/types.h>
• #include <sys/socket.h>
• int socket (int family, int type, int protocol);
Parameters
• family − It specifies the protocol family and is
one of the constants shown below −
• FamilyDescription AF_INET IPv4 protocols
AF_INET6IPv6 protocols
• Type Description
• SOCK_STREAM Stream socket
SOCK_DGRAM Datagram socket
The connect Function

• The connect function is used by a TCP client to


establish a connection with a TCP server.
• #include <sys/types.h>
• #include <sys/socket.h>
• int connect(int sockfd, struct sockaddr
*serv_addr, int addrlen);
Parameters
• sockfd − It is a socket descriptor returned by
the socket function.
• serv_addr − It is a pointer to struct sock addr
that contains destination IP address and port.
• addrlen − Set it to sizeof(struct sockaddr).
The bind Function
• The bind function assigns a local protocol address
to a socket.
• With the Internet protocols, the protocol address is
the combination of either a 32-bit IPv4 address or a
128-bit IPv6 address, along with a 16-bit TCP or
UDP port number. This function is called by TCP
server only.
• #include <sys/types.h>
• #include <sys/socket.h>
• int bind(int sockfd, struct sockaddr *my_addr,int
addrlen);
Parameters
• sockfd − It is a socket descriptor returned by
the socket function.
• my_addr − It is a pointer to struct sockaddr
that contains the local IP address and port.
• addrlen − Set it to sizeof(struct sockaddr).
The listen Function
• The listen function is called only by a TCP server and it performs two
actions −
• The listen function converts an unconnected socket into a passive
socket, indicating that the kernel should accept incoming connection
requests directed to this socket.
• The second argument to this function specifies the maximum number of
connections the kernel should queue for this socket.
• #include <sys/types.h>
• #include <sys/socket.h>
• int listen(int sockfd,int backlog);
• This call returns 0 on success, otherwise it returns -1 on error.
• Parameters
• sockfd − It is a socket descriptor returned by the socket function.
• backlog − It is the number of allowed connections.
The accept Function

• The accept function is called by a TCP server


to return the next completed connection from
the front of the completed connection queue.
The signature of the call is as follows −
• #include <sys/types.h>
• #include <sys/socket.h>
• int accept (int sockfd, struct sockaddr *cliaddr,
socklen_t *addrlen);
Parameters

• sockfd − It is a socket descriptor returned by


the socket function.
• cliaddr − It is a pointer to struct sockaddr that
contains client IP address and port.
• addrlen − Set it to sizeof(struct sockaddr).
The send Function
• The send function is used to send data over stream
sockets or CONNECTED datagram sockets. If you want to
send data over UNCONNECTED datagram sockets, you
must use sendto() function.
• int send(int sockfd, const void *msg, int len, int flags);
• Parameters
• sockfd − It is a socket descriptor returned by the socket
function.
• msg − It is a pointer to the data you want to send.
• len − It is the length of the data you want to send (in
bytes).
• flags − It is set to 0.
The recv Function
• The recv function is used to receive data over
stream sockets or CONNECTED datagram sockets.
If you want to receive data over UNCONNECTED
datagram sockets you must use recvfrom().
• int recv(int sockfd, void *buf, int len, unsigned int
flags);
• Parameters
• sockfd − It is a socket descriptor returned by the
socket function.
• buf − It is the buffer to read the information into.
• len − It is the maximum length of the buffer.
• flags − It is set to 0.

You might also like