![]() |
ServerSocket+Thread
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:
die ich im OnGetThread Ereignis von ServerSocket erstelle
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;
Delphi-Quellcode:
wenn der client komplette daten sendet, funktioniert der aufruf,
SocketThread := TServerThreadX.Create(False, ClientSocket);
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 |
Re: ServerSocket+Thread
Delphi-Quellcode:
so klappt das :mrgreen:
BrowserHeader := TBrowserHeader.Create;
while not Terminated and ClientSocket.Connected do begin s := ClientSocket.ReceiveText; ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz