Network Programming
Q1. What is the purpose of the shutdown() function in TCP sockets, and
how is it different from close()?
Q2. How do you write a basic TCP Echo Server using the socket API, and
what are its uses and limitations?
Q3. What is pselect() in I/O multiplexing, and how is it better than select()
for handling signals?
Q4. What are socket timeouts, and how can you set read/write timeouts
using setsockopt()?
Q5. How do read()/write() differ from recv()/send() in socket programming,
and when should you use each?
Q6. What are readv() and writev() system calls, and how do they improve
I/O efficiency?
Q7. What is the socket address structure for Unix domain sockets, and
how is it different from INET sockets?
Q8. What is socketpair() and how can it be used for full-duplex
communication between two processes?
Q9. How do you implement a Unix Domain Datagram client/server, and
how is it different from Stream sockets?
Q10. What is a TCP Iterative Server, and how does it compare to a
Concurrent Server?
Q11. What is a Preforked Server without locking around accept(), and
what issues can it cause?
Q12. How can one process send file descriptors to another using Unix
domain sockets?