TCP: Problem für erstellen von Cubes für jeden Client

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3

Neue Antwort erstellen

GearTechDE

ehemals 'KillerJo96'

BeitragDi, Okt 11, 2011 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
?? In den Koordinaten habe ich doch C\Name = StreamClient aber in der For Schleife. Macht das einen Unterschied? Ich rede vom Server ^^

Und mit dem WriteByte und WriteSTring?? Ich sende den Byte immer nur damit jetzt jemand weiß aha da kommt wat an damit er genau weiß was.. wo hab ich denn da writestring benutz?
Mit freundlichen Grüßen: GearTechDE

Midimaster

BeitragMi, Okt 12, 2011 1:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
...In den Koordinaten habe ich doch C\Name = StreamClient ...


hää? Bist schon etwas müde, oder?


Wir reden doch von der Stelle, wo sich der neue Client anmeldet! Dort musst du was an den Client senden, also an C\Stream. Aber das, was du senden musst ist doch nicht der ClientName$! Den kennt der doch, so heißt er doch selbst. Was Du senden musst ist der Andere\Name aus dem Andere-Objekt.



WriteByte

Genau! Immer WriteByte vorneweg! Und genau das tust Du hier nicht:

im Server:
BlitzBasic: [AUSKLAPPEN]
Case Client_Joined

ClientName$ = ReadString(C\Stream) ;Name auslesen.

For Andere.Client = Each Client
.....
Next

For Andere.Client = Each Client
If Andere\Stream <> C\Stream Then
; hier fehlt ein WriteByte() !!!
WriteString(C\Stream,ClientName$)

; und die zu senden geht auch nur mit dem entsprechenden WriteByte() vorneweg:
WriteFloat(C\Stream,C\X)
WriteFloat(C\Stream,C\Y)
WriteFloat(C\Stream,C\Z)
WriteFloat(C\Stream,C\Yaw)



Ich glaube, Du hast in den letzten Tagen soviel Code von anderen aufgenommen ohne ihn zu verstehen, dass du langsam an deine Grenzen stößt.

Wenn das ganze noch Sinn machen soll, dann schreib mal die Sende-Sequenzen, die es mittlerweile in der Kommunikation gibt auf einen Zettel oder noch besser in ein TXT raus. Beweise mir mal, das Du weißt, was Du da tust!

Auch würde ich an Deiner Stelle mal dringen mein Tutorial über TYPES lesen. Da haste dir was aufschwatzen lassen, wovon du nicht die Bohne verstehst! So wird das nix!!! TYPES sind toll, aber man muss wissen, was man da macht!

Hier ist das Tutorial: https://www.blitzforum.de/foru...hp?t=33551 Lies bitte die Kapitel I bis III
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

GearTechDE

ehemals 'KillerJo96'

BeitragMi, Okt 12, 2011 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich glaube es ist wirklich einfach noch ne nummer zu groß für mich. ich werde mir jetzt dieses Tutorial reinziehen und dann sehen wir weiter. Ausserdem glaub ich, dass sowas noch etwas zu früh für mich ist.

Danke für den Link und die sonstige Hilfe drüber.

Wenn ich meine, dass ich weit genau dafür bin, melde ich mich wieder.
Mit freundlichen Grüßen: GearTechDE
 

PhillipK

BeitragMi, Okt 12, 2011 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Durchs rumprobieren lernt man doch am besten ^^

Meine ersten Netzwerkcodes hatten sich darauf bezogen, das ich ersteinmal einen Client und den Server habe kommunizieren lassen.
Das lief so, das ich eine eingabe gebastelt habe (am client), diesen string an den Server geschickt habe (dieser hats geprintet) und das ganze wieder an den Client geschickt. Dieser hats dann ebenfalls ausgegeben.

Danach wurde das ganze erweitert, sodass mehrere Clients verwaltet wurden, allerdings recht simpel gehalten - hier scheint du deine schwierigkeiten zu haben.

wichtig ist, das du was mit Types anfangen kannst, das ist IMO für Netzwerkprogrammierung unabdingbar.

GearTechDE

ehemals 'KillerJo96'

BeitragMi, Okt 12, 2011 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Jap ich bin gerade dabei genau sowas zu programmieren was du da beschrieben hast. Bis jetzt funktioniert alles, bis auf das ich die nachricht der andren erst bekomme wenn ich selbst eine eingabe gemacht habe, ist aber mehr oder weniger ein kleiner bug oder programmier fehler von mir den ich momentan nicht behoben krieg ^^
Mit freundlichen Grüßen: GearTechDE
 

PhillipK

BeitragMi, Okt 12, 2011 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Du bekommst sie erst, wenn du selbst eine eingabe machst?

Klingt danach, als würdest du Input nutzen. Oder WaitChar()

wenn dem so ist, ist das ein fehler der aufgrund der funktionen eintritt. Die beide Warten, bis eine eingabe ankam. Input ist da leider ganz übel^^

Prinzipiell kannst du versuchen, dir ein Grafisches fenster zu erstellen und dort mit GetKey() die tasten abzufragen. (ich glaube, der Befehl hies GetKey. Könnte aber auch GetChar sein.)

Hab leider keine ahnung von BB , deswegen nur ein paar gedankenschritte:

Global eingabe$ = ""
BlitzBasic: [AUSKLAPPEN]
While 1

Local eingabe% = GetKey() ;liefert den Asciicode der gedrückten taste, oder 0.
If eingabe > 0 Then ;wenn eine taste gedrückt wurde..
eingabe = eingabe + Chr(eingabe) ; mit chr ein zeichen daraus machen und an die eingabe anfügen.
EndIf
If KeyHit(???) Then ;wenn ENTER gedrückt wurde. ??? durch den KEyCode ersetzen :3
SendeNachricht(eingabe) ;hier an den server senden
eingabe = "" ; eingabe leeren
EndIf
Wend

GearTechDE

ehemals 'KillerJo96'

BeitragMi, Okt 12, 2011 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Noaahhh, desswegen funktioniert das nicht, und ich denke die ganze zeit, das ich etwas falsch mache und Input irgendwie falsch benutze oder so etwas in der Art xD

Na dann mal vielen Dank. Werde das sofort mal probieren.

Edit: Ich habe endlich alles geschafft.. Ich habe mal ein wenig gewartet und dann erst noch probiert das ganze mit UDP zu machen. Ich habe es endlich alles geschafft.. VIelen dank für die hilfe hier nochmal. dieser Thread hat mir wirklich gut geholfen.
Mit freundlichen Grüßen: GearTechDE

Gehe zu Seite Zurück  1, 2, 3

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group