I would like to know what is the difference between a client and wallet.
A wallet is the collection of data needed in order to receive and spend bitcoins. Usually this includes key-pairs (private key, public key and the address that may be inferred from the public key) and funds associated with each key-pair in the form of spendable outputs.
The client on the other hand is the interface to the network. It handles all the communication, updates the wallet with incoming funds and uses information from the wallet to sign outgoing transactions.
While theoretically the wallet could be implemented in a way that is client-agnostic, currently each client implements its own wallet format, blurring the distinction between wallet and client. There are however several projects that attempt to standardize the wallet format so that it can be used in several clients.