What are sockets?

Quoted from [comp.unix.programmer] Unix-socket-faq for network programming :

Sockets are just like "worm holes" in science fiction. When things go into one end, they (should) come out of the other. Different kinds of sockets have different properties. Sockets are either connection- oriented or connectionless. Connection-oriented sockets allow for data to flow back and forth as needed, while connectionless sockets (also known as datagram sockets) allow only one message at a time to be transmitted, without an open connection. There are also different socket families. The two most common are AF_INET for internet connections, and AF_UNIX for unix IPC (interprocess communication).
Let's ask The Free Online Dictionary of Computing:

What is a Socket?

What are Windows Sockets?

"The Berkeley Unix mechansim for creating a virtual connection between processes." A communications channel used by TCP/IP-aware applications. Sockets are data structures created by using a combination of device IP addresses and reserved TCP/UDP port numbers to indicate connection and delivery service information


Unix Socket FAQ.

Winsock Programmer's FAQ.

WinSock Development Information.
Most of this material comes out of the book Windows Sockets Network Programming.

The WinSock channel.
Martin Hall is the co-founder of Stardust and is the Co-inventor of WinSock.

W. Richard Stevens' Home Page.
Author of the best Unix programming books.

Davin's collection of unix programming links.
A lot of them are Socket related.
Website by Lewis Napper, the author of the book WinSock 2.0. He has a nice list of WinSock related links.

Java Socket Tutorial
In case you're not into C/C++.

Some newsgroups (web access powered by Google):


Server Side Sockets explains SO_REUSEADDR for Windows:
Windows Tip: Windows does allow address reuse anyway after a listening socket is closed. If you set the SO_REUSEADDR option windows allows multiple binds to the listening socket which is probably not what you want.