Befehle/Infos an bestimmte Clients senden?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Knyk

Betreff: Befehle/Infos an bestimmte Clients senden?

BeitragDo, Aug 02, 2012 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich brauche mal nen kleinen Ansatz von euch^^
Man stelle sich folgendes vor:
Es gibt einen Server, client A,B,C und D und ein Steuerprogramm.

Nun sage ich z.b im Steuerprogramm: "Client B Fensterfarbe grün" (Ja ich weiss xD aber mir fällt kein sinnvolles Beispiel ein^^) und der Server soll dann logischerweise Client B sagen: "Stell dich mal auf grün."

Wie realisier ich das am besten, dass ich bestimmten Clients etwas mitteilen kann? (sowohl Serverseitig, als auch das entgegennehmen der Mitteilungen um Programm)

Ich kenne mich in Sachen Kommunikation mit nem Server nämlich noch nicht sooo gut aus^^
Aber über nen regelmäßigen check über eine tcp Verbindung wäre ja schon mal nicht praktisch weil doch dann das gesamte Programm auf eine Antwort wartet?
Das hier scheint mir zumindest Serverseitig das zu sein, was ich meine: https://www.blitzforum.de/foru...hp?t=38835
Kann mir jemand vielleicht nochmal kurz genau erklären was da abläuft?
Danke für die Hilfe
 

Lion

BeitragDo, Aug 02, 2012 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, eine TCP Verbindung zu prüfen sollte das Programm nicht aufhängen lassen, außer du hast irgendwas falsch programmiert. Wie sollen denn sonst sämtliche Spiele/Programme laufen, die TCP benutzen?

Du deklarierierst halt bestimmte Codes die für verschiedene Aktionen stehen. Diesen Code schickst du am Anfang jeder Nachricht, damit die anderen wissen was zu tun ist und dementsprechend handeln. Diese Codes müssen aber statisch sein!
Z.b.:
BlitzMax: [AUSKLAPPEN]
Const CODE_tueA:Byte=1
Const Code_tueB:Byte=2

Dann schickst du eben am Anfang immer ein Byte, dass so einen Code enthält und die Clients verhalten sich dementsprechend.
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

Knyk

BeitragDo, Aug 02, 2012 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja Okay, danke schonmal.
Was mir allerdings nicht klar ist, ist
1. Wie kann ich es so machen, dass der Client die Befehle SOFORT erhält? (also nich so, dass er alle paar minuten abfragen muss)
2. Wie ich NUR Client A oder NUR Client B anspreche.
 

Lion

BeitragDo, Aug 02, 2012 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja ehm, was benutzt du denn für eine Netzwerklib? Damit ließe sich das einfacher in Code ausdrücken Wink
Zu 1... Naja, du überprüfst eben in der Hauptschleife einfach jedes mal, ob neue Pakete angekommen sind. Dafür muss eben am Anfang des Programms/wann auch immer das Netzwerkzeugs benötigt wird eine Verbindung zu dem Steuerprogramm/Server hergestellt werden.
Und 2. ist eigentlich auch einfach. Du speicherst ja als Server sämtliche Clients, zu denen du eine Verbindung hast. Ob du das nun in einem Array oder einer Liste machst ist ja nun dir überlassen, aber ich seh das Problem nicht. Du kannst doch einfach dann dir aus dem Array/Liste den entsprechenden Client raussuchen und eben nur an den schicken.
Ist doch alles nicht sonderlich schwer Wink Muss man wohl einmal in der Praxis gemacht haben damit man das ganze versteht, aber ohne zu wissen, wie du überhaupt Verbindungen herstellst ist es schwer, dir im konkreten Fall zu helfen.
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

Knyk

BeitragFr, Aug 03, 2012 0:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Lion hat Folgendes geschrieben:

Ist doch alles nicht sonderlich schwer Wink Muss man wohl einmal in der Praxis gemacht haben damit man das ganze versteht.

Ist wohl mit allem so Very Happy

Lion hat Folgendes geschrieben:

aber ohne zu wissen, wie du überhaupt Verbindungen herstellst ist es schwer, dir im konkreten Fall zu helfen.


genau da fängt meine Frage ja an ^^ Im Grunde will ja "nur" wissen wie man da rangeht.
 

Lion

BeitragFr, Aug 03, 2012 1:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn du dir noch keine ausgesucht hast, würde ich dir Bnetex empfehlen, ist sehr einfach meiner Meinung nach.
Such das hier im Forum einfach in der Modulsektion, sind natürlich auch gleich Beispiele für TCP & UDP drin, mit denen einfach mal ein bisschen rumspielen bis du es verstanden hast Wink
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group