UDP geht nur in die eine Richtung
Übersicht

![]() |
blitzuser34Betreff: UDP geht nur in die eine Richtung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich bin gerade dabei, den Log-In Teil meines Servers zu schreiben. Server: Code: [AUSKLAPPEN] ;Server Stream auf Port 4000 erstellen
port=4000 udp=CreateUDPStream(port) ;Wenn der Stream nicht erstellt werden konnte Fehlermeldung ausgeben If Not udp Then RuntimeError "Stream konnte nicht erstellt werden!" EndIf Repeat Select WaitEvent(0) Case $803 CloseUDPStream(udp) End Case $401 source=EventSource() DoGadgetAction(source) End Select ;Wenn nachricht reinkommt If RecvUDPMsg(udp)<>0 Then ;IP und Port bestimmen client_ip=UDPMsgIP(udp) client_port=UDPMsgPort(udp) ;Message Nummer message=ReadByte(udp) ;Auswerten der Message Nummer Select message ;Benutzer loggt sich ein Case 1 ;Login reinlesen benutzername$=ReadString(udp) passwort$=ReadString(udp) ;Überprüfen check=checkplayerlogin(benutzername$,passwort$) If check=1 Then ;Neuer Benutzer loggt sich ein cl=New client ;Seine IP und sein Passwort speichern cl\ip=client_ip cl\port=client_port ;Mitteilen dass eingeloggt WriteByte(udp,3) ElseIf check=0 Then ;Mitteilen, dass nicht eingeloggt WriteByte(udp,4) EndIf SendUDPMsg udp,client_ip,client_port ;Benutzer erstellt einen Account Case 2 ;Login reinlesen benutzername$=ReadString(udp) passwort$=ReadString(udp) ;Erstellen check=accounterstellen(benutzername$,passwort$) If check=1 Then ;Mitteilen dass erstellt WriteByte(udp,5) ElseIf check=0 Then ;Mitteilen, dass nicht erstellt WriteByte(udp,6) EndIf SendUDPMsg udp,client_ip,client_port End Select EndIf Forever Client: Code: [AUSKLAPPEN] server_ip$="127.0.0.1"
server_port=4000 Global udp = CreateUDPStream() Repeat Select WaitEvent() Case $803 End Case $401 source=EventSource() If source=Button2 Then End ElseIf source=Button1 Then WriteByte(udp,1) WriteString(udp,TextFieldText(TextField1)) WriteString(udp,TextFieldText(TextField2)) SendUDPMsg udp,INT_IP(server_ip$),server_port response=ReadByte(udp) If response=3 Then Exit If response=4 Then Notify "Benutzername oder Passwort falsch!" ElseIf source=Button3 Then EndIf End Select Forever HideGadget window Vom Client zum Server funktioniert es ja ganz gut, jedoch nicht in die andere Richtung. response ist immer 0. Warum? |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sind die Ports für den Server beim Router geöffnet?
MfG |
||
![]() |
blitzuser34 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, sonst dürfte ja das hier nicht funktionieren:
https://www.blitzforum.de/foru...p+tutorial Jedenfalls hat es nichts gebracht, den Port extra freizugeben. |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Login-System mit UDP?
Du bist doch schon länger dabei und hast sicher wo gelesen, dass UDP verlustbehaftet ist? Ich dachte anfangs auch "Ja, theoretisch"... Bis einem dann beim Testen praktisch was abhanden kommt und man daher n fetten Bug in seinem Programm hat. Tu dir das ned an, nimm für Login und ähnlich wichtige Dinge TCP. (Oder versuch dir ein sicheres Protokoll über UDP selbst zu schreiben mit Empfangsbestätigungen etc) mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
blitzuser34 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
versuche gerade Port Forwarding zum Laufen zu kriegen. Nur leider funktioniert es mal wieder nicht. Jetzt habe ich gelesen dass man eine feste IP braucht. Da momentan die IPs dynamisch vergeben werden, wollte ich fragen ob es reicht, bei TCP eine feste IP einzustellen, oder muss ich am Router noch was machen? Blitzuser34 |
||
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
edit: war leider falsch. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group