Schon wieder UDP Probleme

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen

 

Darkbyte

BeitragDi, Apr 03, 2007 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
bist du dir sicher? Ich probier das ganze mal aus. Achja wie hast du das eignetlich mit deinem 3D onlinespiel gemacht?
 

BlackTermi

BeitragDi, Apr 03, 2007 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja genau, zeig uns doch gleich mal den Code?
/edit
Junge ging das aber schnell Wink

@Darkbyte

Du könntest dir aber auch, zum Verständnis, z.B. Codes aus dem Archiv angucken, dort findest du einige gute Beispiele, wie zum Beispiel ein kleiner Chat aufgebaut ist:

Link
  • Zuletzt bearbeitet von BlackTermi am Di, Apr 03, 2007 14:12, insgesamt einmal bearbeitet

Tankbuster

BeitragDi, Apr 03, 2007 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe EINEN port genommen!
Das prog reagiert nur, wenn es "Hallo" empfängt, aber das kannst du sicher schnell ändern^^
Zum testen musst du also "Hallo" an port 7777 schicken...
Ich hoffe ma, das geht, weil ichs so aus der hand geschrieben hab (konnte net testen)
Zitat:

stream=createudpstream(7777);stream auf port 7777 erstellen
While Not Keydown(1)

If RecvUDPMsg(stream);wenn er etwas empfängt
While ReadAvail(stream) ;während dem auslesen
ant$=ReadString$(stream)

if ant$="Hallo"
Print "Es das Wort Hallo empfangen xDDDDDD"
Print "wäre net, wenn du mich in die credits schreiben würdest ^^"
endif
Wend
EndIf
Wend
Twitter
Download Jewel Snake!
Windows|Android
 

Darkbyte

BeitragDi, Apr 03, 2007 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will ja nicht immer Hallo hin und her schicken sondern nachrichten bzw. später dann auch in Spielen Koordinaten.

(Wieso kann das nicht so einfach gehen? Man nimmt einfach 2 Ports und Basta aber nein wie das Schicksal so will gehts bei mir nicht ^^).

The_Nici

BeitragDi, Apr 03, 2007 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Schreibe in den Sream einfach die Koordinaten.
Also EntityX(Player), EntityY(Player), EntityZ(Player)

Weiteres erklährt sich von selbst.
 

Darkbyte

BeitragDi, Apr 03, 2007 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
kann ich einfach die ganze zeit senden und empfangen z.b ich sende die Ganze zeit eine 1 (Partner gegenüber auch) und ich würde das mit einen Port machen würde das dann Fehlerfrei gehen und ich würde die Ganze Zeit eine 1 auf meinem Bildschirm sehen? (Müsste gehen weil ich sende ja dann logischerweise in jedem schleifendurchlauf meine Daten) (Ich Progge in 2D ^^)
 

Darkbyte

BeitragDi, Apr 03, 2007 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach ja Tankbuster ich würde dich gerne in die Credits aufnehmen muss das aber erst mit dem besprechen mit dem ich das Spiel Programmiere.

The_Nici

BeitragDi, Apr 03, 2007 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Darkbyte hat Folgendes geschrieben:
kann ich einfach die ganze zeit senden und empfangen z.b ich sende die Ganze zeit eine 1 (Partner gegenüber auch) und ich würde das mit einen Port machen würde das dann Fehlerfrei gehen und ich würde die Ganze Zeit eine 1 auf meinem Bildschirm sehen? (Müsste gehen weil ich sende ja dann logischerweise in jedem schleifendurchlauf meine Daten) (Ich Progge in 2D ^^)


Ne, der andere muss erst den Stream auslesen und dann anzeigen.
 

Darkbyte

BeitragDi, Apr 03, 2007 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
schon klar aber ich meine im Prinzip wäre das möglich dasich das die ganze Zeit schicke?

The_Nici

BeitragDi, Apr 03, 2007 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
In eine Schleife einfach SendUDPMessage Stream, IP [Port] schreiben.
 

Darkbyte

BeitragDi, Apr 03, 2007 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Das weis ich doch alles ^^. Ich möchte doch nur wissen ob es möglich ist z.B X die ganze Zeit zu senden / der Partner gegenüber sendet z.B auch die ganze Zeit X an micht ist das möglich das wir uns beide gleichzeitig z.B wie oben die X daten senden?

Tankbuster

BeitragDi, Apr 03, 2007 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Natürlich ist das möglich!
Zitat:
x=19
Writeint(stream,x)
SendUDPMessage Stream, IP,Port.

o0
Twitter
Download Jewel Snake!
Windows|Android
 

Darkbyte

BeitragDi, Apr 03, 2007 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Das beide gleichzeitig empfangen und senden können über einen Port?

Tankbuster

BeitragDi, Apr 03, 2007 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Also.... Alles in einem Prog! Du kannst es nur nicht 2 mal auf einem PC laufen lassen, denn dann ist der Port schon belegt!
Es empfängt X, und wenn du enter drückst wird X um 1 erhöht, und weitergeschickt!
Ich hoffe das hilft
PS: zum test kannst du das Prog über 2 verschiedene Ports laufen lassen ( natürlich bei SendUDPMessage den port des anderen progs eingeben)

Zitat:
stream=createudpstream(7777);stream auf port 7777 erstellen
While Not Keydown(1)

If RecvUDPMsg(stream);wenn er etwas empfängt
While ReadAvail(stream) ;während dem auslesen
X=ReadInt$(stream)

print X
If KeyHit(28) X=X+1
print X
Writeint(stream,x)
SendUDPMessage Stream, IP,Port
endif

endif
Wend
EndIf
Wend
Twitter
Download Jewel Snake!
Windows|Android
 

Darkbyte

BeitragDi, Apr 03, 2007 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke für die Antworten ich Probier das ganze gleich mal aus
 

Darkbyte

BeitragMi, Apr 04, 2007 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Geht leider immer noch nicht
Code: [AUSKLAPPEN]

Graphics 640,480,16,2
SetBuffer BackBuffer()





IP$ = Input$("IP: ")


Port = 8888



seem = CreateUDPStream(Port)



Repeat
;Nachricht lesen

If RecvUDPMsg(seem) Then
Antwort$ = ReadLine(seem)
EndIf
Print Antwort$

;Nachricht schreiben
N$ = Input$("Nachricht: ")
WriteLine seem, N$
SendUDPMsg seem, IP(IP$), Port

Until KeyHit(1)

Function IP(IP$)
 A1 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
 A2 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
 A3 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
 A4 = Int(IP$)
 Return (A1 Shl 24) + (A2 Shl 16) + (A3 Shl 8 ) + A4
End Function


Ich habe es so gemacht wie Tankbuster es mir gesagt hat. Ich soll das ganze einfach so machen nur mit einem Port. Geht aber immer noch nicht.

Tankbuster

BeitragMi, Apr 04, 2007 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
OK! also ES GEHT!
NIMM MA DIESE PROGRAMME, und lass beide laufen! mit dem einen kannst du dem anderen nachrichten schicken o0


Zitat:
Graphics 640,480,16,2
SetBuffer BackBuffer()


IP$ = "127.0.0.1"


Port = 8888
Port_auf_den_gesendet_wird=8000



seem = CreateUDPStream(Port)



Repeat
;Nachricht lesen

If RecvUDPMsg(seem) Then
Antwort$ = ReadLine(seem)
EndIf
Print Antwort$

;Nachricht schreiben
N$ = Input$("Nachricht: ")
WriteLine seem, N$
SendUDPMsg seem, IP(IP$), Port_auf_den_gesendet_wird

Until KeyHit(1)

Function IP(IP$)
A1 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
A2 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
A3 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
A4 = Int(IP$)
Return (A1 Shl 24) + (A2 Shl 16) + (A3 Shl 8 ) + A4
End Function


Zitat:

IP$ = "127.0.0.1"


Port = 8000

seem = CreateUDPStream(Port)



Repeat
;Nachricht lesen

If RecvUDPMsg(seem) Then
Antwort$ = ReadLine(seem)
If antwort<>0 Then Print Antwort$
EndIf


;Nachricht schreiben


Until KeyHit(1)

Function IP(IP$)
A1 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
A2 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
A3 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,"."))
A4 = Int(IP$)
Return (A1 Shl 24) + (A2 Shl 16) + (A3 Shl 8 ) + A4
End Function
Twitter
Download Jewel Snake!
Windows|Android
 

Darkbyte

BeitragMi, Apr 04, 2007 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich möchte aber nicht nur den einen Was schicken sondersn eine Nachricht hin und her.
 

Dreamora

BeitragMi, Apr 04, 2007 15:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wo ist das Problem?
Das ist nichts anderes als einem was schicken, denn der eine tut nichts anderes als auch einem (nämlich dir) was schicken.
Es gibt in dem Sinne kein Hin und Her. Daten haben einen genauen Zielpunkt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Darkbyte

BeitragMi, Apr 04, 2007 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wie mache ich das dann bei einem OnlineSpiel? um den gegner zu Zeichnen brauche ich seine X und Y Koordinaten und er braucht meine ja auch.

Heist das nicht dann das ich doch mit 2 Ports arbeien muss oder?

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group