select()
system call takes linear time with the amount of sockets to monitor and this is limitation of the kernel.epoll()
andkqueue()
are modern replacement which are efficient and offer more events.listen()
call is non-blocking. OS raises an event on socket when a connection arrives. More Infoselect()
,poll()
,epoll()
, andkqueue()
are non-blocking mechanisms.overlapped I/O
,completion ports
are asynchronous mechanisms.
Following are the list of CLI programs on MacOS for network inspection:
ifconfig
: lists out info about network interfaceskextstat
: displays kernel extension statsnetworksetup
odutil
dns-sd
/etc/inetd.conf
: configure console-only app into networked ones. merged into launchdfile --mime-type <filename>
: displaysContent-Type
value which can be used for HTTP header data