UDP - Nachricht kommt nicht an.
Übersicht

DotkommusBetreff: UDP - Nachricht kommt nicht an. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erstmal ein hallo ans Forum.
Ich bin relativ neu in Blitz Basic und wollte mich nach direkt play mal an UDP wagen, da hänge ich jetz aber zeit drei tagen.... ich wollte es erstmal ganz spartanisch versuchen aber irgendwie krieg ich keine übertragung zu stande ich hab auch nicht die geringste ahnung wo der fehler liegen könnte vllt sieht ja jemand von euch (mit mehr erfahrung als ich sie hab) wo der fehler liegt. Ich habe ein programm zum senden an eine ip adresse geschrieben und eins zum empfangen der nachricht. Das ganze ist zur hälfte aus tutorials zusammengeschustert.Also übernommen. Ich benutze Biltz 3d V. 1.94 Hier der Sender: Code: [AUSKLAPPEN] Dest_IP$ = Input("IP Adresse: ") 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 IP = INT_IP(Dest_IP$) Print IP Print "Press Enter..." WaitKey sende_stream = CreateUDPStream(8000) Print "Stream erstellt." WriteByte(sende_stream, 23) Print "Nachricht geschrieben." SendUDPMsg sende_stream, IP, 8000 Print "Nachricht gesendet." WaitKey Der Empfänger: Code: [AUSKLAPPEN] empfangs_stream = CreateUDPStream(8000) Repeat IP_Adresse = RecvUDPMsg(empfangs_stream) If IP_Adresse <> 0 Then byte = ReadByte(empfangs_stream) End If Print "Wait" Print "..." Until MouseDown(2) Or IP_Adresse <> 0 Print "Programm Beenden..." WaitKey |
||
- Zuletzt bearbeitet von Dotkommus am Sa, Jan 10, 2009 18:36, insgesamt einmal bearbeitet
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
In der Annahme, dass beide Programm zur selben Zeit laufen, musst du verschiedene Ports verwenden. Ein Stream pro Port, z.B. 8000 und 8001. | ||
Starfare: Worklog, Website (download) |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: SendUDPMsg sende_stream, IP
du musst noch als letzten Parameter den Port angeben, auf den gesendet werden soll ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
Dotkommus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ZaP hat Folgendes geschrieben: In der Annahme, dass beide Programm zur selben Zeit laufen, musst du verschiedene Ports verwenden. Ein Stream pro Port, z.B. 8000 und 8001.
Die beiden Programme laufen auf 2 unterschiedlichen Rechnern mit unterschiedlichen Internet anschlüssen. Dann muss doch der sende Port des einen Programms der Empfangsport des anderen sein oder? Tankbuster hat Folgendes geschrieben: du musst noch als letzten Parameter den Port angeben, auf den gesendet werden soll ![]() Ich hab den Port hinzugefügt. (Auch im Code oben) Das Programm reagirt aber genau so wie vorher auch.. ![]() Kann ich so eine verbundung auch an nur einem rechner testen? |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, der Sendeport muss nie der Empfangssport des anderen Programmes sein.
In deinem Fall tippe ich einfach mal darauf, dass die Firewall den Verkehr blockt. Du kannst übrigens die ganze Netzwerkgeschichte auch einfach auf einem PC lokal testen (vorausgesetzt eben, du verwendest verschiedene Ports), wenn du als Host-IP-Adresse 127.0.0.1 angibst (dann hast du auch keinen Stress mit der Firewall). |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Dotkommus |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok also wenn ich die ip auf 127.0.0.1 stelle und als sendeport 8001 verwende gehts (siehe code)...
Was mich nur verwundert ist das die Windows Firewall (jaja ich weis schon...) mich ja fragt was ich tun möchte und ich es ja eigentlich erlaube, und ich die router firewall auch mal testweise deakttivirt hatte... weis jemand wie ich die UDP übertragung erlauben kann? Code: [AUSKLAPPEN] Dest_IP$ = "127.0.0.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 IP = INT_IP(Dest_IP$) Print IP Print "Press Enter..." WaitKey sende_stream = CreateUDPStream(8001) Print "Stream erstellt." WriteByte(sende_stream, 23) Print "Nachricht geschrieben." SendUDPMsg sende_stream, IP,8000 Print "Nachricht gesendet." WaitKey |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Router vor einem Server (also auch der Router an deinem PC, wenn du das Game hostest) muss so konfiguriert sein, dass die, für ihn, unerwarteten UDP-Pakete an deinen PC weitergeleitet werden. Das Stichwort lautet "Port Forwarding", Google und ggf die Forum-Suche wissen wie. | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group