UDP Nachricht kommt nicht an...
Übersicht

DüsiBetreff: UDP Nachricht kommt nicht an... |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey. ![]() Ganz simples Problem: Client sendet etwas, Server bekommt aber nichts... Server: Code: [AUSKLAPPEN] [...]
Global UDP2 = CreateUDPStream(3456) [...](Hauptschleife) ;--> Empfange Pings If RecvUDPMsg(UDP2) > 0 Then tmpIP = UDPMsgIP(UDP2) tmpPort = UDPMsgPort(UDP2) u2Message = ReadByte(UDP2) Echo "" Echo "" Echo "Empfange PING" [...] EndIf [...] Die If Bedingung wird nie erfüllt, RecvUDPMsg(UDP2) gibt also immer 0 zurück, solange der Client folgendes ausführt: Code: [AUSKLAPPEN] [...]
Global UDP2 = CreateUDPStream() [...](Hauptschleife) ;--> Sende If uLastPing-MilliSecs() < -2500 Then WriteByte(UDP2, u2Ping) WriteString(UDP2, accountID) SendUDPMsg(UDP2, INT_IP("127.0.0.1"), 3456) ;--> DEBUGE Color 255, 255, 255 Print "Sende PING ("+UDP2+"), ("+INT_IP("127.0.0.1")+")" EndIf [...] Die If Bedingung wird nach 2,5sekunden erfüllt... Dennoch kommt beim Server nichts an. Könnte es daran liegen, dass Server und Client zeitgleich über UDP und TCP kommunizieren? Oder ist irgendwo im Code ein Fehler den ich seit Stunden nicht finde? -.- MfG |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm scheint alles richtig zu sein. Bist du dir sicher, das der client wirklich ein signal sendet. Also ist diese zeile
Code: [AUSKLAPPEN] If uLastPing-MilliSecs() < -2500 Then wirklich mal true? Zur not mal mit debug log drucharbeiten und checken ob iwo varriablen falsch befüllt sind ~Edit~ *hopla habs nicht ganz gelesen* was meisnt du mit : "dass Server und Client zeitgleich über UDP und TCP kommunizieren? " Gruß Dottakopf |
||
- Zuletzt bearbeitet von Dottakopf am Mo, Mai 04, 2009 15:33, insgesamt einmal bearbeitet
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dottakopf hat Folgendes geschrieben: Hm scheint alles richtig zu sein. Bist du dir sicher, das der client wirklich ein signal sendet. Also ist diese zeile
Code: [AUSKLAPPEN] If uLastPing-MilliSecs() < -2500 Then wirklich mal true? Zur not mal mit debug log drucharbeiten und checken ob iwo varriablen falsch befüllt sind Gruß Dottakopf Jops, das ist wirklich True, der Print Befehl daruntert wird ausgeführt... Ansonsten könnten eigtl keine Variablen mehr falsch dastehen... INT_IP() ist die Funktion aus der Hilfe, 127.0.0.1 ist die richtige IP und 3456 auch der richtige Port... ![]() Ich versteh's einfach nicht... ![]() EDIT: Zitat: was meisnt du mit :
"dass Server und Client zeitgleich über UDP und TCP kommunizieren? " Dass ich sowohl über einen TCP Server/Stream also auch über einen UDP Stream Daten zwischen Client - Server versende. MfG |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
Wenn du das Programm an einem Compuer testest: Jede Instanz braucht dann CreateUDPStream einen andern Port. Wenn du an zweien Testest: Firewall aus? Evtl. Ports im Router freigegeben? Meine Linkfavoriten: http://blitzbasic.com/codearcs...?code=2263 http://blitzbasic.com/codearcs...?code=2261 MFG |
||
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Starwar hat Folgendes geschrieben: Hi,
Wenn du das Programm an einem Compuer testest: Jede Instanz braucht dann CreateUDPStream einen andern Port. Wenn du an zweien Testest: Firewall aus? Evtl. Ports im Router freigegeben? Meine Linkfavoriten: http://blitzbasic.com/codearcs...?code=2263 http://blitzbasic.com/codearcs...?code=2261 MFG Ich teste es nur an einem PC, Firewall o. Ä. kann also nicht die Ursache sein. Der Server hat den Port 3456, die Clients haben keinen angegebenen Port, Blitzbasic sucht also einen freien... Daran kann es nicht liegen. :/ (Deine Linkfavoriten sind im übrigen 404-Errorseiten ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich möchte dich bitten nicht immer den Vorpost zu zitieren. Danke. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm bin jetzt nicht daheim, aber...
ich benütze für mein online projekt auch die INT_ip funktion. Dürfte keine Probleme machen.... Benützt du DHCP ? wenn ja stell mal auf statisch um und versuche es mit dieser ip(die du festgelegt hast) erneut. Und versuch mal einen anderen Port, vieleicht wird dieser von irgendeinem programm benützt. Bespielsweise dürfte der port 7142 keine Probleme machen.(allgemein solltest du ports ab 7000 für bb projekte verwenden, mein ausbilder meinte mal, das es da so ne richtlinie gibt) Wenn das nicht geht, solltest du mal den kompletten code posten, vielleicht hast du irgendwo noch einen kleineren Fehler drin. Bin erst heute abend wieder daheim, wenn dir da noch nicht geholfen werden konnte, schick ich dir mal beispiel code Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dottakopf hat Folgendes geschrieben: Benützt du DHCP ? wenn ja stell mal auf statisch um und versuche es mit dieser ip(die du festgelegt hast) erneut.
Wops, dafür bin ich nun zu dumm. ![]() Dottakopf hat Folgendes geschrieben: Und versuch mal einen anderen Port, vieleicht wird dieser von irgendeinem programm benützt. Bespielsweise dürfte der port 7142 keine Probleme machen.(allgemein solltest du ports ab 7000 für bb projekte verwenden, mein ausbilder meinte mal, das es da so ne richtlinie gibt)
Macht leider keinen Unterschied Dottakopf hat Folgendes geschrieben: Bin erst heute abend wieder daheim, wenn dir da noch nicht geholfen werden konnte, schick ich dir mal beispiel code
Immer gern. ![]() mfg |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
hier zwar etwas verspätet, aber besser als nichts ![]() Lauffähiger code: (Achtung Ip beim client sollte natürlich angepasst werden) client: Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() server_IP$= "192.168.106.33" server_port = 7142 udp_stream = CreateUDPStream() WriteByte(udp_stream,1) SendUDPMsg udp_stream,INT_IP(server_ip),server_port Repeat Cls Flip Until KeyHit(1) Function INT_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 server : Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() server_port = 7142 udp_stream = CreateUDPStream(server_port) Repeat If KeyHit(1) Then End If RecvUDPMsg(udp_stream)<>0 Then Print "olla da ist ja eine msg" FlushKeys() WaitKey End If Forever ich vermute mal, das du da auch ohne komentare schlau wirst! (bissi denken muss scho dabei sein, ist aber super einfach) Mit dieser Basis müsste eigentlich alles klappen. So stelle ich auf statische ip um : Start-> Einstellungen->Netzwerkverbindungen->Lan-verbindung(die aktive..)->Eigenschaften->Internetprotokol(TCP/IP) und da auf statische IP umstellen. Achtung: !!!! Wenn du hier etwas verstellst, kann es sein das du nicht mehr ins internet kommst, also am besten ein screen machen! Beispiel konfiguration : IP : 192.168.100.xxx subnetzmaske 255.255.255.0 Gateway 192.168.100.<Router IP> dns : <Router IP> Gute nacht (zefix etz gibts kloppe von da freundin weil ich am rechner war..) Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Düsi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmpf... Dein Code funktioniert, daher kann es wohl nicht an meinen Netzwerkeinstellungen liegen?!
Habe nun auch den gleichen Port benutzt, 7142... Dennoch kommt einfach nichts an... Der komplette Code: https://www.blitzforum.de/upload/file.php?id=5454 (Client.bb und LoginServer.bb) |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm hab mir das mal angesehen, und ganz erhlich, das ist schon ein bisschen wuchtig viel zum gucken.
(auch kann ich den client nicht starten da mir eine dll fehlt). nachdem du schon viel gecoded hast, gehe ich mal davon aus, das das iwi schonmal funktioniert hat. Jetzt ist natürlich die frage, was hast du als letztes gemacht?? Suche hier den Fehler ! Geschickte Progger machen immer ein backup bevor sie etwas neues implementieren, hier stellt sich die Frage:"warst du geschickt?" Ich vermute fast, das sich die TCP und UDP streams überschneiden.. und somit nichts am Server ankommt. Allerdings habe ich von TCP wirklich 0 Ahnung und kann dir daher leider nur wenig weiterhelfen. Sorry Da wirst du wohl in den sauren apfel beißen müssen und das step by step druchchecken müssen, bzw step by step das program vereinfachen. Das hab ich auch schon alles hinter mir... ich kenn das, in der woche durfte mir echt keienr dumm kommen ![]() Achja.. dein client baut einen udp stream zu viel auf.. Gruß Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group