Ok, since everybody else is doing it...
A port is a service provided by a machine. That service is identified by a number. There are a lot of standardized port numbers for popular services. Port 22 is for FTP. Port 80 is for HTTP. There are many, many others.
A socket is the way a server and a client keep track of requests. For example, LQ.org allows access to port 80 (HTTP) for the purposes of reading these forums. When my computer requests to see the content of the forums, a socket is created, and a "conversation" between the server and my machine occurs. The thing is, I'm not the only person trying to read the forums. So, to keep the server from getting conversations mixed up, each request gets a different socket. As I recall, there can be 64K sockets (or simultaneous conversations if you prefer). The thing to note is this: that's 64K sockets per port
, because all these requests are coming into the server on port 80, right?
So, ports are a broad reference to a type of service, whereas a socket refers to a specific connection on a specific port.
Oh, forgot... ports and sockets are both typically represented as integers. At I fairly certain; both can take a value from 0 to ( 64K - 1 )