Tcp reconnect im script?

  • Hi ich hab mal seit längerem wieder ne Frage und zwar,

    habe ich ein scipt modifiziert der eine hp per tcp abfrägt und wenn er den gewünschten wert bekommt msgBox ja oder wenn falsch nein sagt.
    Wenn er aber jetzt nein sagt würde ich gern machen das er nochmal den server fragt bis er ja als antwort bekommt.

    Das problem aber ist, dass er den server nur nach beenden des scripts wieder frägt! Hier mal der source:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ask()

    [/autoit] [autoit][/autoit] [autoit]

    Func ask()

    [/autoit] [autoit][/autoit] [autoit]

    Global $IP = "213.202.225.60"
    Global $PORT = 80
    Global $Connect = -1, $Recv

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    TCPStartup()
    While $Connect = -1
    GuiCtrlCreateLabel(".",80,100,20,40)
    GuiCtrlDelete(-1)
    GuiCtrlCreateLabel("..",80,100,20,40)
    GuiCtrlDelete(-1)
    GuiCtrlCreateLabel("...",80,100,20,40)

    $Connect = TCPConnect($IP, $PORT)
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    $sendvar = "GET http://roseruff.ro.funpic.de/New.html" & @CRLF & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    TCPSend($Connect, $sendvar)

    [/autoit] [autoit][/autoit] [autoit]

    While $Recv = ''
    GuiCtrlCreateLabel(".",90,100,20,40)
    GuiCtrlDelete(-1)
    GuiCtrlCreateLabel("..",90,100,20,40)
    GuiCtrlDelete(-1)
    GuiCtrlCreateLabel("...",90,100,20,40)
    $Recv = TCPRecv($Connect,2048)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    TCPCloseSocket($Connect)
    TCPShutdown()

    [/autoit] [autoit][/autoit] [autoit]

    $gotit = $recv

    [/autoit] [autoit][/autoit] [autoit]

    If $gotit = "test" Then
    MsgBox(4096,"", "right")
    exit
    Else
    MSgBox(0,"","wrong")
    ask()
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]

    ;edit sry hab nur meinen link rausgenommen

    Einmal editiert, zuletzt von I3iLLiG (3. Januar 2008 um 22:22)

  • Ich kenn mich jetzt kein Stück mit TCP/IP aus ( ja tut mir Leid ich sollte das ändern^^ ).
    Aber ich habs mal so versucht.

    Spoiler anzeigen
    [autoit]

    $answer=0
    While $answer=0
    $answer = ask()
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func ask()

    [/autoit] [autoit][/autoit] [autoit]

    Global $IP = "213.202.225.60"
    Global $PORT = 80
    Global $Connect = -1, $Recv

    [/autoit] [autoit][/autoit] [autoit]

    TCPStartup()
    While $Connect = -1
    GuiCtrlCreateLabel(".",80,100,20,40)
    GuiCtrlDelete(-1)
    GuiCtrlCreateLabel("..",80,100,20,40)
    GuiCtrlDelete(-1)
    GuiCtrlCreateLabel("...",80,100,20,40)

    $Connect = TCPConnect($IP, $PORT)
    Wend

    $sendvar = "GET http://roseruff.ro.funpic.de/New.html" & @CRLF & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    TCPSend($Connect, $sendvar)

    [/autoit] [autoit][/autoit] [autoit]

    While $Recv = ''
    GuiCtrlCreateLabel(".",90,100,20,40)
    GuiCtrlDelete(-1)
    GuiCtrlCreateLabel("..",90,100,20,40)
    GuiCtrlDelete(-1)
    GuiCtrlCreateLabel("...",90,100,20,40)
    $Recv = TCPRecv($Connect,2048)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    TCPCloseSocket($Connect)
    TCPShutdown()

    [/autoit] [autoit][/autoit] [autoit]

    $gotit = $recv

    [/autoit] [autoit][/autoit] [autoit]

    If $gotit = "test" Then
    MsgBox(4096,"", "right")
    Return 1
    Else
    MSgBox(0,"","wrong")
    Return 0
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]


    Die Funktion gibt bei Erfolg den Wert 1 zurück und beim Fehlschlag die 0.
    Die Schleife versucht es dann halt solange bis es endlich klappt.

  • gute Idee aber klappt leider auch nicht...

    edit: das heißt, wenn er eimal wrong "sagt" dann immer wrong auch wenn er nochmal die hp checken sollte und das richtige da steht.

    2 Mal editiert, zuletzt von I3iLLiG (16. November 2007 um 10:54)

  • Zitat

    Original von I3iLLiG
    edit: das heißt, wenn er eimal wrong "sagt" dann immer wrong auch wenn er nochmal die hp checken sollte und das richtige da steht.

    Verstehe ich jetzt nicht.
    SOLL er immer wrong sagen wenn die Verbindung einmal nicht geklappt hat
    ODER sagt er jetzt immer wrong egal was passiert? Letzteres kann ich nicht vorstellen.

    Zudem steht deine aktuelle Frage imho in keinem Zusammenhang zu deiner Frage aus dem 1. Post.

  • Zitat

    Original von Wesloth

    Verstehe ich jetzt nicht.
    SOLL er immer wrong sagen wenn die Verbindung einmal nicht geklappt hat
    ODER sagt er jetzt immer wrong egal was passiert? Letzteres kann ich nicht vorstellen.

    Zudem steht deine aktuelle Frage imho in keinem Zusammenhang zu deiner Frage aus dem 1. Post.

    a) er sagt dann immer wrong egal was passiert

    b) das war keine frage sondern ne aussage was der script macht ;)

    Edit: Hat jemand eine Idee warum er trotzdem SocketCLose TcpShutdowm nicht mehr in der lageist neu zu starten?

    Einmal editiert, zuletzt von I3iLLiG (16. November 2007 um 19:55)