The below table lists theĀ characteristics of Select andĀ poll API One of the problem statements that both of these APIs suffer from is that the time taken to process File descriptors increases as the number of file descriptors to monitor also increases. This is because, the Linux kernel has to loop through all the […]
The Poll API code example
The Poll API is similar to the select api in its operation. To understand more about the poll API – refer the link provided below. The Poll System Call The current code example uses the poll API to accept incoming socket connections. The Sample code is based on unix sockets but would work as well […]
The Poll System call
The Poll System call performs a similar operation as the select system call. To understand the select system call, an interested reader can visit the below link. The Select System call The poll API differs with select API in the manner in which the file descriptors to be monitored are specified to the Poll API. […]
Select System Call API Code Example
To understand the Select System Call API, kindly look at the article given below. Select System Call The current code example provides a reader an example usage of the select system call. The Unix Socket is used as the socket mechanism, however, Internet sockets also will work the same. The code is provided below. The […]
The select system call
The select system call is used in multiplexed I/O. The select system call blocks on a set of File descriptors (FD) until one of the FDs is ready for read/write. The select system call is provided below FIG Courtesy : The Linux Programming Interface – Michael Kerrisk The parameters of the API are explained below. […]
Select and Poll API
The Select and Poll API provide a means to perform multiplexed I/O on sockets from an application. In Linux, all opened sockets are file descriptors. If a particular application wishes to read from or write into multiple file descriptors, the program has to wait on the different file descriptors to know when data can be […]
IPv6 Socket Code Example
All the previous examples of socket programming in this website have been based on IPv4. In this code example, we see a stream IPv6 socket connection. The code for IPv6 is very similar to the IPv4 connection with minor changes in socket structure. For the interested reader, the IPv4 Socket example for stream sockets is […]
Raw Socket Code – IP_HDRINCL Code example
The previous code example (provided here) showed the usage of IPPROTO_RAW. In the current example, the protocol field is kept as IPPROTO_UDP (or any L4 protocol). However, the setsockopt API is used to set the IP_HDRINCL flag. The setting of this flag will again stop the kernel from adding the IP header and the onus […]
Raw Socket Code – IPPROTO_RAW example
We have not seen the usage of IPPROTO_RAW as a protocol in all of the previous articles. The current article provides a code example for IPPROTO_RAW as the protocol field in the socket API. If IPPROTO_RAW is used, then the IP header needs to be formulated by the application. The sample code fills in a […]
Raw Socket Communication with Data Link Layer – code example
The Raw socket can be used to send and receive data from the L2 layer directly. To achieve this, a suitable socket protocol type needs to be sent out. we will use ETH_P_ARP for the ARP L2 protocol. The sample code only transmits a single ARP packet. An interested reader can add the receive code […]