Einzelnen Beitrag anzeigen

Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Einstieg in Server-/Clientprogrammierung

  Alt 16. Jan 2008, 14:45
Zitat von everdream:
So wie ich es bis jetzt verstanden hab, kann man in AThread.Data (heißt bei mir übrigens AContext.Data) einen beliebigen Typen reinschreiben und diesen mit allen Informationen füllen, die man braucht. Oder ist es aus irgendeinem Grund besser nur einen Index da rein zu schreiben udn den Rest dann irgendwo anders zu haben... mit dem Index würde man dann ja auch direkt dran kommen.
Ich denke das ist Geschmackssache. Ich habe es, glaube ich, damals mit einer extra Liste gemacht. Aber nötig ist das IMHO nicht.

Zitat von everdream:
edit:
Okay, die Identifizierung wird soweit kein Problem mehr sein.
Wie sieht das jetzt mit Routern usw. aus? Damals hab' ich den Zugriff von Clients auf meinen PC als Server durch Forwarding ermöglicht. Kann man das irgendwie umgehen??
Tja, das wird nicht so leicht gehen. Wenn du mal guckst, haben auch alle Onlinespiele (TrackMania United, Need for Speed: Pro Street, ...) irgendwo stehen, dass man gewisse Port "forwarden" sollte.
Einzige Möglichkeit: Nimm einen zentralen Server, alle Clients verbinden sich dorthin. Der Server ist dann quasi der Vermittler zwischen Client und Client. Fast alle Chatprogramme machen das so (ICQ, GTalk, ...).

Zitat von everdream:
edit2:
Mal ne ganz blöde Frage wegen OOP.
Wenn ich eine eigene Klasse schreibe, die den Server und die Clients verwaltet,... wie kann, z.B. bei nem "Connect"-Ereignis, der Form-Klasse sagen, dass sie die Clientliste(Listbox) und die History(Memo) aktualisieren soll?
Kommt ganz darauf an wie man es macht.

a) Der Server sendet "Neuer Benutzer: X" an alle Clients
b) Der Server sendet "Neue Liste" und die Clients vergleichen die Liste vor und nach der Aktualisierung.
c) ...

Im Endeffekt könnte man dann eine neue Mehtode machen (z.B NewUser, etc. ) und darin vielleicht irgendwie am Ende eine andere Methode Refresh aufrufen.

So allgemein kann ich da aber nichts sagen.
  Mit Zitat antworten Zitat