why it can not access the destination Host when the network cable is disconnected for a moment and later this connected again?
//---------------------------------------------------------------------------- // Thread 'Server': BSD Server socket process //---------------------------------------------------------------------------- static void Server (void const *arg) { SOCKADDR_IN addr; int sock, sd, res; int type = (int)arg; char dbuf[4];
while (1) { sock = socket (AF_INET, type, 0); addr.sin_port = htons(PORT_NUM); addr.sin_family = PF_INET; addr.sin_addr.s_addr = INADDR_ANY; bind (sock, (SOCKADDR *)&addr, sizeof(addr)); if (type == SOCK_STREAM) { listen (sock, 1); sd = accept (sock, NULL, NULL); closesocket (sock); sock = sd; } while (1) { res = recv (sock, dbuf, sizeof (dbuf), 0); if (res <= 0) { break; } if (dbuf[0] == BLINKLED) { LED_Out (dbuf[1]); } } closesocket (sock); } }
That and how the unspecified host reacts to the change, a) by getting an interrupt or whatever, and b) by reprogramming the PHY and renegotiating the link to the switch/hub
Please see also Posting Tips about using the PRE tags for source code.