UDP problem

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

dimaster

Betreff: UDP problem

BeitragFr, Okt 22, 2004 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
da mein spiel schnell sein soll habe ich von directplay auf udp gewechselt.Aber da habe ich mal im busch von René Meyer nachgesehen und dieses beispiel ausprobiert.wenn ich ne ip an gebe dann kommt warte....(oder ähnlich)dann will ich noch ein fenster öffnen und es kommt eine fehler meldung.ich glaube man muss einen befehl einbauen damit man als host ein spiel starten kann oder wie seht ihr das?bitte helft mir.
hier mal der code :
Code: [AUSKLAPPEN]

hostmodus = 1

sendeport     = 2000
empfangsport  = 2001

If hostmodus = 0 Then
sendeport    = 2000
empfangsport = 2001
EndIf

senden = CreateUDPStream(sendeport)
empfangen = CreateUDPStream(empfangsport)

If hostmodus = 0 Then
ip = integerip("192.168.0.1")
Else
Print "warten"
Repeat
ip = RecvUDPMsg(empfangen)
If KeyHit(1) Then End
Until ip <> 0
Print "verbindung steht"
Print "ip-adresse des senders - "+DottedIP(ip)
Print "<Taste drücken>"
WaitKey
EndIf

Graphics 640,480
SetBuffer BackBuffer()

Repeat
Cls

If RecvUDPMsg(empfangen) Then
x2 = ReadShort(empfangen)
y2 = ReadShort(empfangen)
EndIf

If hostmodus = 1 Then
Color 255,0,0
Else
Color 0,0,255
EndIf

Oval x2,y2,30,30,1

x1alt = x1
y1alt = y1
x1 = MouseX()
y1 = MouseY()
If x1 <> x1alt And y1 <> y1alt Then
WriteShort senden,x1
WriteShort senden,y1
SendUDPMsg senden,ip,sendeport
EndIf

If hostmodus = 1 Then
Color 0,0,255
Else
Color 255,0,0
EndIf

Oval x1,y1,30,30,1
Flip
Until KeyHit(1)

CloseUDPStream senden
CloseUDPStream empfangen

Function integerip(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


Mfg dimaster

Hummelpups

BeitragFr, Okt 22, 2004 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube es liegt daran, dass du nicht 4 Ports aufmachen kannst,
wovon 2 immer die gleichen sind. Ich glaube ich hatte mal das selbe
Problem
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

dimaster

BeitragFr, Okt 22, 2004 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
dann müsste ich die gleichen ports benutzen?wie soll ich das denn machen?


dimaster

Hummelpups

BeitragFr, Okt 22, 2004 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Du erstellst 2 Streams. Jedes Proggie eins und von dort sendest du eine Msg zu dem ANDEREN Port das von dem anderen Port benutzt wird.

Dann muss der Server aber den Port des Clienten wissen.
Du kannst dem Server irgendeinen Stream createn lassen.
Der Port spielt hierbei keine rolle. Den bekommt der Client durch
recvudpmsg(Empfangs_Stream) aber er Server muss den Empfangs
Port des Clienten wissen. So ist es bei meinen Spielen auch.

BiZaR
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

dimaster

BeitragFr, Okt 22, 2004 22:42
Antworten mit Zitat
Benutzer-Profile anzeigen
hä aber dann muss ich ja zwei codes machen oder?machs mal bitte mit dem beispiel.
danke





dimaster

Hummelpups

BeitragFr, Okt 22, 2004 22:48
Antworten mit Zitat
Benutzer-Profile anzeigen
wie wärs mit ner IF Abfrage ob man Client oder Host ist?[/b]
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Jolinah

BeitragFr, Okt 22, 2004 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Edit:

Ich packe es gleich mal in FAQ & Tutorials da das fast immer wieder kommt...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group