You can use a websocket from an API to listen to new transactions and new blocks. Remember that the transactions you are listening to are still unconfirmed, and will have the first confirmation when it's hash shows up in a new block. In these transactions you can see both sender and receiving addresses.
You can also use also use RPC to interact with your bitcoind or bitcoin-qt, but in this case you will need to download the entire blockchain.
Check
https://blockchain.info/api/api_websocket and
https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29