Shutdown (1), заставляет сокет не отправлять больше данных
Это полезно в
1- Промывка буфера
2- Обнаружение странной ошибки
3- Надежная охрана
Позвольте мне объяснить больше, когда вы отправляете данные из A в B, они не гарантируются, что они будут отправлены в B, они гарантированно будут отправлены только в буфер A os, который, в свою очередь, отправляет их в буфер B os.
Таким образом, вызывая shutdown (1) для A, вы очищаете буфер A, и возникает ошибка, если буфер не пуст, то есть: данные еще не отправлены партнеру
Как бы то ни было, это необратимо, поэтому вы можете сделать это после того, как полностью отправите все свои данные, и вы хотите быть уверены, что они по крайней мере в буфере одноранговой ОС.
shutdown()
делает :)