Einzelnen Beitrag anzeigen

Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#1

Sockets verwalten (WSAAsyncSelect vs WSAEventSelect)

  Alt 19. Jul 2008, 17:54
Hallo zusammen...
Nachdem ich mir ein Tutorial zu Socketprogrammierung mittels WinAPI angesehen habe wollte ich das auch mal in mein Projekt einbauen. Mein Problem ist dabei das ich nicht weiß wie ich die Sockets beim Empfangen verwalten soll wenn ich mit TCP arbeite.

Möglichkeit 1:
Ich arbeite mit WSAAsyncSelect und übergebe ein Fensterhandle, das eine Message bekommt, die über das enstpechende Ereignis informiert, und gleich das Sockethandle mitliefert. Problem: Ich habe kein Fenster und ich weiß nicht ob so eine Lösung tragbar ist, bei der man einfach ein unsichtbares Fenster erzeugt.

Möglichkeit 2:
Ich arbeite mit Events und setze für jedes Socket ein Event woraufhin ich mit WSAWaitForMultipleEvents darauf warte das eines ausgelöst wird. Das Problem, das ich hier sehe: Ich kenne nur das auslösende Event und nicht das Sockethandle... ich müsste mir also ne Liste basteln und bei jedem Event nach dem Socket suchen ... das kanns ja auch nicht sein.

Möglichkeit 3:
Ich erzeuge für jedes Socket einen Thread der einfach wartet. Probleme könnten hier Overhead und Sychronisation sein.

So... und nun die große Frage: Wie macht man es richtig?
Jan
  Mit Zitat antworten Zitat