Could someone please explain the differences between POSIX sockets and BSD sockets?
As reported in http://www.openss7.org/papers/strsock/sockimp.pdf:
Berkeley Sockets. Sockets uses the BSD interface that was developed by BBN for the TCP/IP protocol suite under DARPA contract on 4.1aBSD and released in 4.2BSD. BSD Sockets provides a set of primary API functions that are typically implemented as system calls. The BSD Sockets interface is non-standard, operated differently from the POSIX interface in subtle ways, and is now deprecated in favour of the POSIX/SUS standard Sockets interface.
POSIX Sockets. Sockets were standardized by X/Open, later the OpenGroup, and IEEE in the POSIX standardization process. They appear in XNS 5.2 [XNS99], SUSv1 [SUS95], SUSv2 [SUS98] and SUSv3 [SUS03]. POSIX/SUS Sockets is now the common application environment for accessing networking, deprecating the XTI for TCP/IP networking applications.
bsd sockets is the name for the sockets interface that was first released with the bsd operating system in '83.
later this was rolled up into the posix specification with some more detailed operating specs.
There is no difference except that the term bsd sockets encompasses the api released with the bsd operating system, while the posix standard applies to any os that wishes to be posix compliant.