A socket command is a command that is processed at the unit of the connected socket (or connection or descriptor) rather than at the unit of a player object. Accordingly, socket commands can be performed before a player is actually logged in (i.e., at the MUSH connection screen). This also implies that if a player is connected more than once, a socket command issued by one connection need not affect the other connection (although conventionally WHO does). It also means that you can't use any of them in softcode and that you can't @force someone to QUIT or 'teach LOGOUT' and the like.
Conventionally, socket commands are written in UPPERCASE LETTERS to distinguish them from commands that run by objects.