Einzelnen Beitrag anzeigen

Benutzerbild von engel90
engel90

Registriert seit: 15. Jan 2007
Ort: Jena
38 Beiträge
 
Delphi 7 Personal
 
#1

Korrekte Typumwandlung nach TSocket

  Alt 6. Feb 2008, 19:28
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
  Mit Zitat antworten Zitat