UDP Problem...
Übersicht

DüsiBetreff: UDP Problem... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mit etwas code könnte man das problem evtl genauer untersuchen.. | ||
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group