Stap 2: over het programma
Ik denk dat de code it zelf genoeg commentaar bevat zodat degenen met enige programmering vaardigheid op zijn minst begrijpen kunnen het hele programmeerstroom, zo niet de gehele code, maar gewoon om toe te voegen meer inzicht
Allereerst ben ik begonnen met een nieuwe draad die de tcpConnect() functie loopt, deze functie zal proberen te verbinden met poort 5445 (ik hou van deze poort) op de zelfde machine, de IP en poort kan worden gewijzigd door de gebruiker, zoals socket.connect functie een uitzondering werpen zal als de verbinding mislukt, ik gebruikte proberen behalve om te vormen een nieuwe poging methode voor verbinding , zodat de draad wordt herhaald totdat de verbinding is gevestigd, dan zal het juiste vlaggen ingesteld en begint een nieuwe thread die verantwoordelijk is voor het lezen van de aansluiting, de draad een door de gebruiker gedefinieerde aanroep terug functie zullen noemen wanneer het detecteert een volledige lijn van gegevens die eindigen met \r\n,
voor nu en in dit project printen we alleen de ontvangen gegevens,
Ik heb ook een klasse timer die verantwoordelijk was voor het aanroepen van een door de gebruiker gedefinieerde timeout callback functie op een regelmatige gebruiker opgegeven interval geïmplementeerd in deze time-out verhogen we twee callback vlaggen HBCounter en HBSent, deze vlaggen worden gebruikt om te bepalen hoe lang het netwerk niet actief in beide directions,i.e.-server naar de client en client naar server is geweest, je kunt je afvragen waarom we deze twee nodig? omdat wij ervoor zorgen willen dat de verbinding omhoog en gezond is, en TCP zal check this standaard na zeggen twee uur van inactiviteit, die vrij lang, is zodat we gebruik maken van dit mechanisme om ditmaal tot een aanvaardbare waarde,
U kunt veilig verwijderen van de timer voor testdoeleinden, maar om een hoger niveau van betrouwbaarheid die u de timer gebruiken moet als zodat de server die u kunnen moet heartbeat-pakketten verstuurt aan de cliënt of de cliënt de verbinding dalen zal en een nieuwe stelt nadat de sommige timer op basis van conditie in de code wordt voldaan ,