moin, ich verwende udpsend um befehle zum server zu schicken.
klappt auch so weit. jetzt gibts ja keine rückmeldung über die packete
wie bei TCP ... so weit so gut. allerdings würde ich zumindest gerne
feststellen ob die verbindung bzw das login zur gegenstellt/server überhaupt
hergestellt wurde. wie mache ich das ? geht das überhaupt ?
udpsend/open - wie kontrollieren ob die verbindung steht ?
-
- [ offen ]
-
WhiteLion -
26. Oktober 2010 um 12:12 -
Geschlossen -
Erledigt
-
-
Du könntest:
- per Ping() überprüfen ob der Server/Client online ist:
[autoit]
Ping($sServerIP & ":" & $iPort)
[/autoit] - oder eine Variable im Server erstellen:
[autoit]
Global $fClientConnected = False
[/autoit]
Und wenn sich ein Client mit dem Server verbinden will muss er zB: "acceptme" senden.
Im Server wird dann überprüft ob dieser Text empfangen wurde.
Danach wird die Variable $fClientConnected auf True gesetzt
Nur ein paar Ideen
- per Ping() überprüfen ob der Server/Client online ist:
-
danke für den versuch.
dennoch kann hats nicht geholfen
denn du gehst in beiden varianten von dingen aus die
nicht immer zu treffen. zum einen hab ich nicht immer zugriff auf den server und kann somit
keine programme installieren die irgendwie antworten oder variablem zurückgeben.
zum anderen ist nicht jeder server immer über tcp ping-bar.
hat jemand noch eine andere lösung ? -
- Offizieller Beitrag
Hallo
Einfach so:
UDPSend($bla,"bla")
If @error then MsgBox(16,"","Verbindung ist abgebrochen. Error:"&@error)Gruß
Spider -
na ja gtaspider, so steht es zumindest im beispiel und so hab ich es auch gemacht.
doch leider kommt nie eine fehlermeldung selbst, wenn ich eine verbingung zum einem
server den es gar nicht gibt aufbaue (quasi mit fakedaten), noch beim senden mit falschem login daten.
so weit ich weiss gibts bei UDP ja auch gar keine rückmeldung beim senden, aber das
es auch beim verbindungsaufbaus so ist, wusste ich nicht.verbindungsaufbau:
[autoit]UDPStartup()
[/autoit]
$ipxxx = TCPNameToIP(GUICtrlRead($DEDI_IP_HOST_Input))
$opendUDPsocket = UDPOpen($ipxxx, GUICtrlRead($DEDI_PORT_Input))
If @error <> 0 Then
msgbox(262144,"Error" ,"Something went wrong while opening UDP socket! Error: "&@error)
_enableAllHotkeys()
Return
EndIfsenden:
[autoit]
[/autoit]
$udpstatus = UDPSend($opendUDPsocket, "ÿÿÿÿ rcon "& GUICtrlRead($DEDI_PASSWORD_Input) &" "& $xxsString)
If $udpstatus = 0 then
msgbox(262144, "Error", "Error while sending UDP string! Error: " & @error)
Return
EndIf