Your application can't communicate directly with one shard and it is useless too.
Maybe the following picture can help you to understand how sharding works in MongoDB.
The query router (also called mongos) works as a middleware: it receives a request from the client and directs it automatically to the correct(s) shard(s);
when a shard is ready, sends its answer to this query router which shall forward it to the client.
Using mongoDB sharding, the mongos instances use the metadata of your config servers to route a request just towards the affected shard(s).
There is not any need to communicate directly with a shard, MongoDB does it for you.