UDP
Übersicht

![]() |
Dicker HobbitBetreff: UDP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Ich bin es mal wieder. Ich habe mich zum ersten Mal an UDP versucht und schon kommen die ersten Probleme: Hier mein Code(das schießen der Rechtecke einfach ignorieren, es soll erstmal das Netzwerk zustande kommen ![]() Server: BlitzBasic: [AUSKLAPPEN] Graphics 640,480,0,2 Client: BlitzBasic: [AUSKLAPPEN] Graphics 640,480,0,2 Als Server_IP gebe ich mich selbst an (127.0.0.1)! Das Problem ist das die UDP Streams jeweils erstellt werden (keine Fehlermeldung), sich die Programme aber nichts schicken! Danke schon mal im vorraus! Lg Dicker Hobbit |
||
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geschickt wird schon, aber das Problem was ich sehe ist das folgende:
Deinem Server sagst du er solle Port 8000 gebrauchen, soweit sogut. Deinem Client sagst du er solle sich selber einen Port raussuchen(CreateUDPStream ![]() Aber du sagst keinem von beiden wo er seine Pakete hinschicken soll, denn die Variablen client/server_port werden erste gesetzt wenn sie ein Packet empfangen. Du musst mindestens einem von beiden vorher sagen, an welchen Port er senden muss. Weitherhin schreibst du den Namen mit WriteInt ![]() ![]() Ob das alles ist, musst du mal schaun, aber es ist denke ich ein Start. Was ich dir wenn es, nachdem du diese Sachen behoben hast immer noch nicht klappt, empfehlen kann ist der Befehl DebugLog ![]() |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
Addi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Server sollte nur(betont) zum Verteilen an alle Clients dienen (also so wie die Post).
Lese dir mal in der Hilfe die Beispiele durch, dort steht unteranderem das man mit ReadAvail die max. Anzahl an Bytes auslesen kann. Das kombiniert mit einer While-Schleife dann dürfte es gehn Hoffe ich konnte dir Helfen ![]() Mfg. Addi |
||
BP/B3D/BMax : Lerne Java : Früher mal Lite-C : Gewinner BCC 62 |
![]() |
Dicker Hobbit |
![]() Antworten mit Zitat ![]() |
---|---|---|
So ich habe mir eure Antworten zu Herzen genommen und versucht sie umzusetzen, leider bin ich zu keinem Erfolg gelangt ![]() Nach wie vor gibt es keinen Datenaustausch! (DebugLog meldet sich auch nicht !) Den Port habe ich nun bei dem Client auf 8000 festgelegt und den Tippfehler von Code: [AUSKLAPPEN] Writeint und Code: [AUSKLAPPEN] Readstring auch behoben!
Außerdem habe ich Readavail mit einer While-Schleife eingebaut. Wo liegt mein Fehler ? Danke schonmal im Vorraus! Lg DickerHobbit PS: Der überarbeitete Teil Server: BlitzBasic: [AUSKLAPPEN] If RecvUDPMsg(udp_stream)<>0 Client: BlitzBasic: [AUSKLAPPEN] If RecvUDPMsg(udp_stream)<>0 |
||
![]() |
Addi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guck mal ob überhaupt Bytes vorhanden sind
Also bevor du überprüfst ob eine Nachricht eingeht, machst du TB=ReadAvail(UdpStream) und lässt es dir ausgeben Versuch im Server mal erst die Udp Nachricht zu senden und dann erst die Spielerdaten |
||
BP/B3D/BMax : Lerne Java : Früher mal Lite-C : Gewinner BCC 62 |
![]() |
Dicker Hobbit |
![]() Antworten mit Zitat ![]() |
---|---|---|
Immer noch kein positives Ergebnis...
Code: [AUSKLAPPEN] tb=ReadAvail(Udp_stream)
Text 0,50, tb liefert mir eine 0 zurück ! Zitat: Versuch im Server mal erst die Udp Nachricht zu senden und dann erst die Spielerdaten
Wie meinst du das genau ich habe das so umgesetzt : BlitzBasic: [AUSKLAPPEN]
War das deine Idee oder habe ich dich da missverstanden? Mir ist nämlich schleierhaft was dies bewirken soll. Warum soll er erst den Stream schicken und dann ihn erst mit Informationen füllen ? Kannst du mir das ein bisschen näher erklären ? ![]() (Btw so wie oben klappt es auch nicht ![]() |
||
![]() |
Addi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau xD
Undzwar überprüfst du im Client zuerst, ob eine Nachricht geschickt wurde und dann, wenn das der fall ist, ließt du die Daten aus Im Server sendest du aber zuerst die Daten und dann die Nachricht. Ich bin mir zwar nicht sicher aber ich glaub bei dem Befehl wird auch etw. in den Stream geschrieben. Wenn du das dann so wie vorher machst (und das stimmt was ich denke xD) könnte es sein das die Udp Nachricht irg. untergeht und so die Abfrage niemals wahr wird. |
||
BP/B3D/BMax : Lerne Java : Früher mal Lite-C : Gewinner BCC 62 |
![]() |
Dicker Hobbit |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok das klingt logisch ![]() Trotzdem danke für deinen Versuch ! Falls du oder jemand anderes noch eine Idee hat wie ich das Problem korriegieren kann, dann wäre ich sehr glücklich . Danke schonmal im vorraus! Lg Dicker Hobbit |
||
![]() |
Addi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also:
Das mit ReadAvail() muss nicht sein Und SendUDPMessage() muss hinten stehen ![]() Ich habe mal im Forum gesucht und folgendes gefunden: https://www.blitzforum.de/foru...p+tutorial Habe es zwar nochnicht ausprobiert, aber ich bin zuverlässig, dass es geht Hoffe das es geht ![]() Mfg. Addi Edit: Ich habe in deinem Code noch einen Fehler gefunden. Undzwar sendest du sowohl im Server alsauch im Client einen String (den Namen von deinem Spieler) mit WriteInt() auslesen tust du aber mit ReadString() |
||
BP/B3D/BMax : Lerne Java : Früher mal Lite-C : Gewinner BCC 62 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group