Frage zu Client/Server Kommunikation

  • Hallo,
    Ich arbeite an einem Programm, welches per Netzwerk andere Programme steuert, und von diesen Daten empfängt. Eigentlich ist der Gro�teil sehr ausgereift, nur schleift es massiv an der Client-Server Kommunikation. Ich komme seit 2 Wochen nicht weiter.


    Meine Probleme bestehen darin, dass ich es nicht hinkriege, dass man mindestens 2 Server gleichzeitig steuern kann bzw. von verschiedenen die Daten ausliest und verarbeitet.


    Könnte mir vllt. jemand einen Tipp oder sonstiges Lernmaterial geben, mit welchem ich es verstehen kann? Ich bin am verzweifeln


    Reyden

  • Ich kann nur raten, weil nähere Informationen ja fehlen, aber vermutlich differenzierst du die einzelnen Sockets nicht korrekt. Dein "Server" ist ja eigentlich netzwerktechnisch gesehen ein Client und dein Client im Umkehrschluss der eigentliche Server. Ich verwende ab nun die korrekten Bezeichnungen ..


    Wenn ein Client eine Verbindung zum Server herstellt, wird gleichzeitig ein neues Socket erstellt, welches die Verbindung zum Client repräsentiert. Bei zwei Clients hast du logischerweise auch zwei offene Sockets auf Serverseite. Deine Aufgabe ist es nun diese Sockets sinnvoll zu verwalten (z.b. direkt in der Liste, die deine Remote Computer listet). Jetzt kannst du auch differenziert Befehle nur an einen oder mehrere gewählte Clients senden. Variablen, wie beispielsweise die Grö�e der ankommenden Daten müssen selbstverständlich für jedes Socket einzeln verwaltet werden.

  • Zitat von Zacherl;20123

    Ich kann nur raten, weil nähere Informationen ja fehlen, aber vermutlich differenzierst du die einzelnen Sockets nicht korrekt. Dein "Server" ist ja eigentlich netzwerktechnisch gesehen ein Client und dein Client im Umkehrschluss der eigentliche Server.


    Das ist richtig. Ich nahm nur die in solchen Foren meist übliche Bezeichnung für beides ;D

    ...............<---> [Remote Computer]
    [Computer] <----> [Remote Computer]
    ...............<---> [Remote Computer]


    Nur die Reihenfolge und der Aufbau der Routinen plagt mich zurzeit. Bei einer einzelnen Verbindung läuft es wunderbar. Informationen werden übertragen, der Remote PC erscheint in einer �bersichtstabelle. Nur wenn ein zweiter Remote-Computer auftaucht, wei� ich nicht, wie ich es von der Aufteilung her so mache, dass ich parallel Verbindungen zu laufen habe.


    Aktuell würde es so laufen


    .................... [Remote Computer]
    [Computer] <----> [Remote Computer]
    ..................... [Remote Computer]


    Netzwerkzugriffe waren immer das, womit ich am meisten Probleme hatte. Der Rest läuft eigentlich wie geschmiert. Aber der Post hat mir wieder weitergeholfen! ;)

  • Ich weiÃ? was das Problem ist. Du brauchst einfach einen neuen Socket per Thread bei der Request Prozedure.
    Zwar hat Zacherl recht, das Problem ist das er "delphimä�ig" denkt, da Delphi die ganzen Socket Requests Automatisch handelt, was bei VB(.Net) nicht der Fall ist.




    Du sagst, du spürst die Ohnmacht, denn der Feind ist ach so stark
    Und er will dich niederhalten mit Geschrei durch Bein und Mark
    Mit Verboten und Zensur kann er zwar den Kampf erschweren
    Doch niemals wird ein Richterspruch den freien Geist bekehren.


    Fürchte lieber Deutschlands Untergang als die Reden der Vasallen
    Derer, die der Lüge dienen, denn schon bald werden sie fallen.