Einzelnen Beitrag anzeigen

cyborg

Registriert seit: 15. Jan 2003
24 Beiträge
 
Delphi 7 Personal
 
#1

Serverprogramm - Frage wegen multiplen clients

  Alt 15. Jan 2003, 17:09
Hallo!

Meine Frage ist vielleicht schon mal aufgetaucht, aber irgendwie hab ich nichts dazu gefunden.

Wo ich Schwierigkeiten habe ist einfach das Denk-Konstrukt bei Serverprogrammen.

ICh will mal zusammenfassen:
mehrere Clients binden an ein Serverprogramm per TCP/IP Prot.
im Serverprogramm läuft für jeden client ein einzelner Thread, nicht wahr? meistens laufen sogar mehrere pro client.

Daten werden vom client an den server und umgekehrt gesandt.

mein Problem ist: wie konstruiere ich das Serverprogramm?
wie können die einzelnen threads miteinander interagieren?

beispiel: ich baue ein spiel, wo mehrere clients andocken. alle berechnungen macht der server, er sendet an die clients, was er berechnet hat und diese stellen es dar.
die clients wiederum senden eigene aktionen an den server.
zusätzlich ist aber wichtig, dass nicht jeder client alle informationen bekommen muss.
sagen wir konkret: das spiel besteht aus punkten, die auf einer riesen fläche hin und her wandern können. der client empfängt vom server nur jene punkte die innerhalb eines sichtradiusses sind (also wo die koordinaten nicht zu grosse unterschiede haben)

ich hoffe ich kann ausdrücken was für mich die schwierigkeit darstellt: es muss sozusagen ein hauptprogramm geben, mit einer "datenbank" der ereignisse (positionen aller clients z.B.).
ich frage mich auch, wie ich an alle clients senden soll... per timer?

worm es mir geht:
ich will einen server machen, sozusagen ein grundgerüst, und das auch verstehen. der server soll unterstützen dass mehrere clients andocken und informationen nicht nur austauschen, sondern auch vom server generierte informationen bekommen (also der server macht von selbst auch was, es basiert nicht alles auf Sende- und Empfange- Ereignissen)

wenn einmal sowas steht, kann man diesen server so verändern wie man will, man kann daraus zB einen chat machen oder was weiss ich...

jeder, der links, beispiele, erklärungen oder sonstwas für mich in diese richtung hat, solle es bitte posten, ich wäre dankbar.
  Mit Zitat antworten Zitat