Я пытаюсь соединить две машины, скажем, машины A и B. Я пытаюсь отправить TCP-сообщение от A до B (в одну сторону). В нормальном сценарии это работает нормально. Когда связь гладкая, если сокет в B закрыт, send () из A застрянет навсегда. И это ставит процесс в состояние зомби. У меня есть сокет в заблокированном режиме на машине А. Ниже приведен код, который застрял навсегда.
if (send (txSock,&txSockbuf,sizeof(sockstruct),0) == -1) {
printf ("Error in sending the socket Data\n");
}
else {
printf ("The SENT String is %s \n",sock_buf);
}
Как мне узнать, закрыта ли розетка на другой стороне ?? Что возвращает send, если целевой сокет закрыт? Выбрал бы быть полезным.