nabend,
ich möchte pro verbundenem client einen thread erstellen,
die clients können unterschiedlich grosse daten senden, dennoch soll gegeben sein, das zugreifende clients daten erhalten bzw. senden
dazu benutze ich die ServerSocket komponente
ich habe eine abgeleitete classe definiert
Delphi-Quellcode:
type
TServerThreadX = Class(TServerClientThread)
public
procedure ClientExecute; override;
end;
procedure TServerThreadX.ClientExecute;
var
BrowserHeader : TBrowserHeader;
s : string;
begin
s := ClientSocket.ReceiveText;
if not Terminated and ClientSocket.Connected then
begin
BrowserHeader := TBrowserHeader.Create;
if BrowserHeader.GetData(s, ClientSocket ) = 1 then
begin
{ ergebnis 1 ist wenn daten komplett gesendet wurden, ansonsten
sollen die nächsten gesanten daten angenommen und verarbeitet
werden
}
sleep(1);
ClientSocket.Close;
Terminate;
end;
end;
end;
die ich im OnGetThread Ereignis von ServerSocket erstelle
SocketThread := TServerThreadX.Create(False, ClientSocket);
wenn der client komplette daten sendet, funktioniert der aufruf,
sobald die daten im mehreren paketen ( sendungen ) ankommen, kommt leider kein ergebnis, das debuggen zeigte, das der server immer die gleichen daten erhielt
das sind meine ersten schritten mit threads, wäre schön wenn ihr mir weiterhelfen könnt