Shutdown(1) , forces the socket no to send any more data
This is usefull in
1- Buffer flushing
2- Strange error detection
3- Safe guarding
Let me explain more , when you send a data from A to B , it's not guaranteed to be 
sent to B , it's only guaranteed to be sent to the A os buffer , 
which in turn sends it to the B os buffer
So by calling shutdown(1) on A , you flush A's buffer and an error is raised 
if the buffer is not empty ie: data has not been sent to the peer yet
Howoever this is irrevesable , so you can do that after you completely 
sent all your data and you want to be sure that it's atleast at the peer 
os buffer