This was a question raised by one of the software engineers in my organisation. I\'m interested in the broadest definition.
A socket is basically an endpoint for network communication, consisting of at least an IP-address and a port. In Java/C# a socket is a higher level implementation of one side of a two-way connection.
Also, a definition in the Java documentation.