Python TCP client + trådar (2 / 3 steg)
Steg 2: om programmet
Jag tror att koden it self innehåller tillräckligt kommentar så att de med viss programmering skicklighet kan åtminstone förstå hela programmet flödet, om inte hela kod, men bara för att lägga till mer insikt
Det första jag startade en ny tråd som ska köra funktionen tcpConnect(), denna funktion kommer att försöka ansluta till port 5445 (jag älskar denna port) på samma maskin, IP och port kan ändras av användare, som socket.connect funktion kommer att generera ett undantag om ansluter misslyckas, jag använde en försök utom för att bilda ett nytt försök metod för anslutning , så tråden kommer loop tills anslutningen är etablerad, då det kommer att sätta ordentlig flaggor och startar en ny tråd som är ansvarig för behandlingen från uttaget, tråden kommer att kalla en användardefinierad call back funktion när den upptäcker ett komplett sortiment av data slutar med \r\n,
för nu och i detta projekt vi bara skriva ut mottagna data,
Jag också genomfört en timer-klass som var ansvarig för att anropa en användardefinierad timeout callback funktion på en vanlig användare angivet intervall, i denna timeout motringning vi öka två flaggor HBCounter och HBSent, dessa flaggor används för att identifiera hur länge nätet har varit inaktiv i båda directions,i.e. servern till klienten och klienten till servern, kan du fråga varför vi behöver dessa två? eftersom vi vill se till att anslutningen är upp och frisk, och TCP kommer att kontrollera detta som standard efter säga två timmars inaktivitet, som är ganska lång tid, så vi använder denna mekanism för att minska denna tid till ett acceptabelt värde,
Du kan ta bort timern på försök, men för att få en högre grad av tillförlitlighet bör du använda timern, om så den server du använder måste kunna skicka heartbeat paket till klienten eller klientens kommer att avbryta anslutningen och upprättar en ny ett efter några timern på grundval av villkoret i koden är uppfyllt ,