Postoji (kod TClientSocket i TServerSocket):
NA STRANI KLIJENTA: ctBlocking i ctNonBlocking
NA STRANI SERVERA: stNonBlocking i stThreadBlocking
Ako postavis tip KLIJENTA na ctBlocking, onda nakon:
Code:
ClientSocket->Open()
...program STOJI na toj liniji NEDEFINISANI broj sekundi (zapravo zavisno od toga
da li si u LAN-u oko 5 sekundi ili INTERNETU oko 60 sekundi). Takodje u takvoj
situaciji tesko da ces PROGRAMSKI prekinuti cekanje. Jedini nacin je iz nekog
DRUGOG thread-a, ali i tada ces imati probleme, mada je to druga prica.
Ako postavis tip KLIJENTA na ctThreadBlocking, onda nakon:
Code:
ClientSocket->Open()
...program ide odmah na sledecu liniju i DALEKO bolje procesira poruke.
Savet: UVEK KORISTI NA KLIJENSTKOJ STRANI clNonBlocking.
Ako kod SERVERA koristis stNonBlocking, onda ces kod "bombardovanja" vise
klijenata na server dobiti IZMESANE poruke.
Ako kod SERVERA koristis stThreadBlocking, onda prethodno moras napraviti THREAD
koji ce poruke svakog klijenta HVATATI u svom "podrucju" bez sanse za mesanjem.
Savet: UVEK KORISTI NA SERVERSKOJ STRANI stThreadBlocking
Inace, ceo kod vec imas :)
P.S.
TClientSocket i TServerSocket se "potiskuju" iz C++ Builder-a iako celi sistemu
(po recima nekih ljudi) godinama pouzdano rade sa tim komponentama. Kod novog
C++ Buildera 2006 ove komponente treba "do-instalirati" jer se ne vide na paleti
sa komponentama.
P.P.S. Kao zamena, preprucuje se Indy set komponenti koje su IZUZETNO
kvalitetne i sav THREAD-ing ce raditi UMESTO KORISNIKA.