Första fel jag får är 10061 (Connection refused), sedan är det 10060 (Connection timed out).
Men nu har jag hittat något - som dock fortfarande är dumt mot mig
Jag har nu ändrat mitt sätt att göra det på till att faktisk kalla Socket->Close() och Socket->Open().
Men nu är det problemet att jag får 10049 (Cannot assign requested address)...
Men NU tror jag att jag är nära målet!
Jag testade att BARA kalla Socket->Open() med de parameter som behövs och det ser ut att fungera.
Innan gjorde jag slarvigt nog så att jag fibblade med de "vanliga" parameter (ClientSocket1->Address = "en sträng"; ->Port = 4001; osv) men nu kör jag ENBART ->Open("", "192.168.1.240", "", 4001, ctNonBlocking);
Det fungerar bra när jag kör normalt och såklart får jag lite fel när jag drar ut kabeln.
Jag hade en connection-timeout på 500ms och fick sedan 10061 (Connection refused) men nu ändrade jag timeout till 3000ms och nu verkar det fungera utan problem.
Drar jag ut sladden blir det såklart fel, sätter jag den tillbaka går det en aning trögt en gång, sedan kör det.
EDIT: Jag kör Borland C Builder 6 och har på formen en TClientSocket.
För att få det till att fungera måste jag börja (när programmet startas upp) med att stänga Socket'en.
ClientSocket1->Socket->Close();
Sedan öppnar jag som beskrivit ovan. Blir det skit stänger jag Socket'en i On_Error eventen och nollar felkoden så jag släpper en massa felrutor. Jag noterar även det i en logg men det är en annan sak.
Efter jag har öppnat Socket'en väntar jag upp till 3000ms medan ClientSocket1->Socket->Connected blir kollad var 100ms. Blir den OK i tid fortsätter systemet med att kommunicera, annars signaleras det om att det inte gick och att nästa enhet ska kopplas upp.
Jag paketerar mina bytes i ett paket som skickas medelst:
ClientSocket1->Socket->SendBuf(Source, Bytes);
Och läser dom:
Length = ClientSocket1->Socket->ReceiveLength();
ClientSocket1->Socket->ReceiveBuf(Rx_Data.Bytes + Offset, Length);
Jag har just nu serieportsservern ställd som RS232 och loopat Rx & Tx varför jag får samma bytes som jag skickar. Och det fungerar riktigt bra nu, faktisk så väl att jag måste sänka hastigheten lite - ett angenämt problem.