UDP Problem...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Düsi

Betreff: UDP Problem...

BeitragMi, Aug 13, 2008 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,
ich hab folgendes Problem:

Ich versuche gerade ein kleines Spiel über UDP... Ich starte auf meinem PC Server und den Client, gebe bei der ServerIp dann meine Hamachi IP ein... Der Server bekommt die Pakete, auch wenn ich noch einen zweiten Client starte. Beide Clients bekommen ihre Pakete und der Server bekommen ebenfalls die Pakete von beiden Clients.

Wenn jetzt aber ein Freund den Client starte und meine Hamachi IP als Server IP verwendet, bekommt der Server zwar die Pakete von seinem Client, aber der Server leitet ihm nicht meine Pakete weiter und ihm leitet der Server nicht meine Pakete weiter...

Woran kann das liegen?
Wir sind beide in Hamachi und verbinden uns über die gleiche IP zum Server... :/
 

da_poller

BeitragDo, Aug 14, 2008 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
mit etwas code könnte man das problem evtl genauer untersuchen..
 

Düsi

BeitragDo, Aug 14, 2008 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Gern...

Dieser Teil ist vom Server, wo er empfänt wenn ein neue Client beitritt (= geht) und es eigentlich allen anderen Clients sagen soll, damit es einen neuen Client gibt.
Code: [AUSKLAPPEN]
Function funcLoginPlayer()
   ;===========================================================================
   ;--> Ein Spieler hat sich eingeloggt
   ClientID$ = ReadString(UDP) ;--> ID
   ClientName$ = ReadString(UDP) ;--> Client Name
   ClientLevel = ReadInt(UDP) ;--> Level des Users
   

   ;--> Client erstellen
   Client.tClient = New tClient
   Client\UserID = ClientID
   Client\IP = ClientIP
   Client\Port = ClientPort
   Client\Name = ClientName
   Client\Level = ClientLevel
            
   ;--> Textausgabe
   Print ClientID + " tritt dem Spiel bei. ("+ClientName+")"
   Print ClientID + " hat das Level "+ClientLevel
            
   ;--> Nachricht an alle Spieler senden
   For Client.tClient = Each tClient
      If Client\UserID <> ClientID Then
         WriteByte(UDP, sLoginPlayer)
         WriteString(UDP, ClientID)
         WriteString(UDP, ClientName)
         WriteInt(UDP, ClientLevel)
         SendUDPMsg UDP, Client\IP, Client\Port
      EndIf
   Next
            
   ;--> Dem Spieler alle Daten über die bisherigen Spieler senden
   For Client.tClient = Each tClient
      If Client\UserID <> ClientID Then
         ;--> Neuer Spieler
         WriteByte(UDP, sLoginPlayer)
         WriteString(UDP, Client\UserID)
         WriteString(UDP, Client\Name)
         WriteInt(UDP, Client\Level)
         SendUDPMsg UDP, ClientIP, ClientPort
                  
         ;--> Map
         WriteByte(UDP, sMap)
         WriteString(UDP, Client\UserID)
         WriteString(UDP, Client\Map)
         SendUDPMsg UDP, ClientIP, ClientPort
                  
         ;--> Position
         WriteByte(UDP, sMove)
         WriteString(UDP, Client\UserID)
         WriteInt(UDP, Client\X)
         WriteInt(UDP, Client\Y)
         WriteInt(UDP, Client\Frame)
         SendUDPMsg UDP, ClientIP, ClientPort
      EndIf
   Next
End Function


Und hier den Teil wo der Client empfängt wenn es einen neuen Client gibt.
Code: [AUSKLAPPEN]
         
;===================================================================
Case sLoginPlayer:   
   ;--> Neuer Spieler
   PlayerID$ = ReadString(UDP)
   PlayerName$ = ReadString(UDP)
   PlayerLevel = ReadInt(UDP)
            
   ;--> Spieler hinzufügen
   Client.tClient = New tClient
   Client\UserID = PlayerID
   Client\Name = PlayerName
   Client\Level = PlayerLevel


Aber wie gesagt, wenn ich den Server auf meinem PC starte und dann den Client 2 mal starte und jeweils auf meine Hamachi IP connecte klappt alles, wenn ich aber einmal einen Client auf meinem PC starte und mein Freund einen auf seinem PC, sendet der Server die Daten des Clients des anderen PCs nicht mehr an den Client auf meinem PC und umgekehrt, wenn ich dann aber noch einen 2ten Client auf meinem PC starte, dann bekommt mein erster Client die Daten vom 2ten Client auf meinem PC vom Server, mein Freund bekommt aber die Daten vom Server der Clients auf meinem PC nicht...

EDIT: Grade nochmal mit nem anderem Freund versucht, der XP hat... Jetzt klappts wunderbar... .
Kann das an Vista liegen?

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group