A PC (also known as a client) always is the first one to send a request over a network. They are the initiator of every data exchange. They don't receive anything otherwise. And they therefore always know who they are conversing with from the start.
A server is setup to listen continuously on a network. They need to be able to respond to new request from unknown sources. They never know when the next new request will be, or who it is from until they do their data handshake.
Hardware and software have nothing to do with it. Only how it is setup.
Well, a server has to be running software that, you know, serves stuff. Listens and responds to network requests. They do usually also have different hardware-- no need for an integrated screen or keyboard!
Right. Any hardware (that can connect to a network) can be a server, but people usually choose to make servers out of certain hardware that they find convenient for the task.