How can I distinguish different yet similar sounds when listening? I have learned reading only so my reading and listening levels are drastically different. I finally started to learn speaking and listening five weeks ago but I have been quite struggling with distinguishing the different yet similar sounds while hearing.

Example:


shen
xiang
xian
sheng
shan
shang


Or


zhang
zhen
zheng
zhan


Or


chuang
chuan
chang


Or


chen
chan
cheng
chang


Or 


shi
xi


Not only these sounds, but Chinese also have 4 different sounds on each syllable, which is practically impossible for me to locate which sound points to which character and word.

Honestly, even when I hear them many times all of these sounds sound the same, and it feels practically impossible to differentiate these sounds correctly.

My question:


Can Chinese people distinguish these sounds correctly? For example if a person says xiàng, do Chinese correctly locate its word and accent?
Do foreigners who are fluent in Chinese understand these sounds correctly? Or do they solely rely on context to differentiate which sounds they are?
Being non-natives, how can I improve myself to differentiate them properly?
This is a very good question, which I also run into while I was learning English. 

My approach to this is to learn 最小的语言单位 (I defined it as a Minimum Language Unit, MLU). I invented that term here, lol. MLU is a minimum language unit that can express something in practice. For example, the single character 向 xiang 4 doesn't mean anything and it's only valid in the phrase like 方向. Put it in a sentence: 我找不到方向. Here I treat 我, 找不到，方向 as MLUs, because each denotes the minimum meaning of the language.

When you read/listen, try not to focus on each single character, but on MLUs, because a single character might be meaningless for comprehension. 

This is also the way I do for English. For example, I'll catch you later, make sure you won't be ripped off, where I'll, catch you later, make sure, you won't be, ripped off are all considered as my MLUs. In this way, my reading level and my listening level are almost the same and they are much better than my writing. When I listen, I try to catch those MLUs instead of word for word. This also helps the speed for comprehension. When you hear something spoken out in your second language, usually you might have to take some time to digest internally. The shorter time you consume, the better listening you will have. 

Another point, which is also very important, is the cadence. When you hear a native speaker speaks, he/she  always follows some kind of rhythm and along with some tone emphasis(I am not sure how to describe it correctly, but hopefully it'll be clear). You should learn to capture that cadence as well. It would take you some time, but it wouldn't be very hard I think. 

I personally had been very successful with this approach. My foreign colleagues, who are American native speakers, feel that they are free to communicate with me and easy to get their thoughts come through when we discuss technical issues. They don't have to slow down when they talk to me. I hope this approach could help you as well! 

Good luck!