Hallo,
ich bin gerade dabei einen Server für ein eigenes Chatprogramm zu entwickeln. Dabei bin ich auf folgendes Problem gestoßen:
Der Server soll multithreaded sein, d.h. er soll für jeden neuen Client einen neuen Thread erstellen. Zum Erstellen der Threads möchte ich die
WinAPI Funktionen CreateThread() oder BeginThread() benutzen. Als Parameter möchte ich den Threads eine TSocket (WinSock.pas) Variable übergeben.
Delphi-Quellcode:
...
function ThreadFunk(param: Pointer): Longint; stdcall;
var
client: TSocket;
begin
// Übergabeparameter in ein TSocket zurückführen
client := param^; // >> Muss hier nicht noch irgenteine Typumwandlung folgen? Da ich vermute das die Fehler die ich im Serverprogramm bekomme darauf zurückzuführen sind, das hier irgendwas nicht stimmt
..
end;
...
var
// Socket welches als Parameter übergeben werden soll
sckt: TSocket;
begin
// Parameter vorbereiten
arg := @sckt;
// Thread mit dem Parameter starten
BeginThread(nil, 0, TFNThreadStartRoutine(@ThreadFunk), arg, 0, ThreadID);
end;
Danke für alle Antworten schon mal im vorraus
engel90