Mal wieder ein Prob mit UDP

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Hummelpups

Betreff: Mal wieder ein Prob mit UDP

BeitragDo, Aug 26, 2004 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kann doch nich sein. Tausend und ein mal probiere
ich das aus. Nehme andere UDP Beispiele, alle verfahren sie
anders. Nix klappt vernümpftig. Kann mir einer sagen
ob der Code richtig ist und mein Net das nur nich will wegen
FW oder was auch immer oder ob der Code Kot ist.

Hilfe wäre echt cool.

Code: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()

Print "[1] Host"
Print "[2] Client"
key=WaitKey()
If Chr(key)="1" Then
   Host=1
   Port_Senden=8000
   Port_Empfangen=8001
   Stream_Senden=CreateUDPStream(Port_Senden)
   Stream_Empfangen=CreateUDPStream(Port_Empfangen)
End If

If Chr(key)="2" Then
   Host=0
   Port_Senden=8001
   Port_Empfangen=8000
   Server_IntIP=int_IP(Input("Host IP: "))
   Stream_Senden=CreateUDPStream(Port_Senden)
   Stream_Empfangen=CreateUDPStream(Port_Empfangen)
   WriteByte Stream_Senden,1
   SendUDPMsg Stream_Senden,Server_IntIP,Port_Senden
End If
      
Repeat
   
   Color 255,0,0
   Oval x1,y1,10,10
   Color 0,0,255
   Oval x2,y2,10,10
   
   WriteByte Stream_Senden,2
   WriteByte Stream_Senden,x1
   WriteByte Stream_Senden,y1
   If Host=0 Then SendUDPMsg Stream_Senden,Server_IntIP,Port_Senden
   If Host=1 Then SendUDPMsg Stream_Senden,Client_IntIP,Port_Senden
   
   Repeat
      eingang=RecvUDPMsg(Stream_Empfangen)
      Byte1=ReadByte(Stream_Empfangen)
      Select byte1
         Case 1 Client_IntIP=eingang
         Case 2 x2=ReadByte(Stream_Empfangen):y2=ReadByte(Stream_Empfangen)
      End Select
   Until eingabe=0
   
   x1=MouseX()
   y1=MouseY()
   
   Flip
   Cls
Until KeyHit(1)   
   
   
   
Function Int_IP(inputIP$)
   Local break1,break2,break3,add1,add2,add3,add4,ipreturn
   break1 = Instr(inputIP$,".")
   break2 = Instr(inputIP$,".",break1+1)
   break3 = Instr(inputIP$,".",break2+1)
   add1 = Mid(inputIP$,1,break1-1)
   add2 = Mid(inputIP$,break1+1,break2-1)
   add3 = Mid(inputIP$,break2+1,break3-1)
   add4 = Mid(inputIP$,break3+1)
   ipreturn=(add1 Shl 24) + (add2 Shl 16) + (add3 Shl 8) + add4
   Return ipreturn
End Function

Markus2

BeitragFr, Aug 27, 2004 1:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab UDP in CubeRacer drin , kannste da ja mal abgucken .
In deinem Beispiel ballerst du ständig mit Pakete was nicht gut
ist , das mußt du synchronisieren .
z.B. erst wenn dein Client Daten schickt , schickst du ihm wieder
neue . Diese Funk. braucht man auch nicht Int_IP .

Hummelpups

BeitragFr, Aug 27, 2004 2:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Markus2 hat Folgendes geschrieben:
braucht man auch nicht Int_IP .

Question

Markus2

BeitragFr, Aug 27, 2004 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Smile

Code: [AUSKLAPPEN]

Function NetRun()

 Local n=0,IP1=0,IP2=0

 NetServerIP=0
 NetLocalIP=0

 If Len(NetServerName$)=0 Then Return

 n = CountHostIPs(NetServerName$) ;hier den Server Namen eingeben
 If n=>1 Then IP1 = HostIP(1)
 n = CountHostIPs("") ;wenn leer dann bekommt man den lokalen Rechner
 If n=>1 Then NetLocalIP = HostIP(1)

 If IP1=NetLocalIP Then NetServer=1 Else NetServer=0

 If NetServer=1 Then
  n = CountHostIPs("") ;wenn leer dann bekommt man den lokalen Rechner
  If n=>1 Then NetServerIP = HostIP(1)
  DebugLog "Network UDP Server"
  DebugLog "Server IP " + DottedIP(NetServerIP)
  NetStreamIn=CreateUDPStream(NetServerPort) ;auf dem hört der immer
  NetStreamOut=CreateUDPStream(NetServerPort+1) ;spricht
  DebugLog "NetStreamIn "+NetStreamIn
  DebugLog "NetStreamOut "+NetStreamOut 
 Else
  n = CountHostIPs(NetServerName$) ;hier den Server Namen eingeben
  If n=>1 Then NetServerIP = HostIP(1)
  DebugLog "Network UDP Client"
  DebugLog "Server IP " + DottedIP(NetServerIP)
  NetStreamIn=CreateUDPStream(NetServerPort+1) ;hört
  NetStreamOut=CreateUDPStream(NetServerPort) ;sendet dahin wo der Server hört
  NetListCheck(NetServerIP,NetServerPort) ;an dem senden wir dann
 EndIf

End Function

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group