TCPConnect Return wert auf einmal weg?

  • Hi,
    das ist mein Script (Funktioniert alles, wo die markierung endet aber nichtmehr)

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiIPAddress.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIStatusbar.au3>
    Global $OpenPort, $Verbinden = False
    Opt("GUIOnEventMode", 1)

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

    $Form1 = GUICreate("Client", 484, 338, 336, 324)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
    $Label1 = GUICtrlCreateLabel("Server IP", 32, 56, 48, 17)
    GUICtrlSetOnEvent($Label1, "Label1Click")
    $IPAddress1 = _GUICtrlIpAddress_Create($Form1, 80, 48, 130, 21)
    _GUICtrlIpAddress_Set($IPAddress1, @IPAddress1)
    $Group1 = GUICtrlCreateGroup("Verbindungsdaten", 16, 16, 449, 81)
    $Button1 = GUICtrlCreateButton("Verbinden", 240, 48, 75, 25)
    GUICtrlSetOnEvent($Button1, "Button1Click")
    $Button2 = GUICtrlCreateButton("&Trennen", 328, 48, 75, 25)
    ControlDisable($Form1, '', $Button2) ;Deaktiviere den Trennen Button;
    GUICtrlSetOnEvent($Button2, "Button2Click")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Commands = GUICtrlCreateTab(24, 112, 441, 185)
    GUICtrlSetOnEvent($Commands, "CommandsChange")
    $Autoit = GUICtrlCreateTabItem("Autoit")
    $Edit2 = GUICtrlCreateEdit("", 40, 144, 417, 113)
    GUICtrlSetOnEvent($Edit2, "Edit2Change")
    $Button4 = GUICtrlCreateButton("Ausführen", 200, 264, 75, 25)
    GUICtrlSetOnEvent($Button4, "Button4Click")
    $Cmd = GUICtrlCreateTabItem("CMD")
    $CMD_BEFEHL = GUICtrlCreateInput("", 40, 144, 329, 21)
    GUICtrlSetOnEvent($CMD_BEFEHL, "CMD_BEFEHLChange")
    GUICtrlSetTip($CMD_BEFEHL, "CMD Befehl")
    $Button3 = GUICtrlCreateButton("Senden", 376, 144, 75, 25)
    GUICtrlSetOnEvent($Button3, "Button3Click")
    $Edit1 = GUICtrlCreateEdit("", 40, 176, 409, 113)
    GUICtrlSetOnEvent($Edit1, "Edit1Change")
    GUICtrlCreateTabItem("")

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

    $StatusBar1 = _GUICtrlStatusBar_Create($Form1)
    Dim $StatusBar1_PartsWidth[2] = [150, -1]
    _GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth)
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Nicht Verbunden", 0)
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "", 1)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    TCPStartup()

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

    While 1
    Sleep(10)
    If $Verbinden = True Then
    ;;;;;;;;;;;;;;;;;;;;;;;;;Funzt von hier;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;Verbinden;
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Verbinde", 0)
    $IP = _GUICtrlIpAddress_Get($IPAddress1)
    Global $OpenPort = TCPConnect($IP, 6666)
    If @error Then
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Falsche IP Adresse", 0)
    MsgBox(16, 'ERROR', 'Konnte Verbindung nicht herstellen')
    $Verbinden = False
    Else
    TCPSend($OpenPort, 'Hallo') ;;Erstes Hallo;;

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

    Do
    $Bereit = WaitForData($OpenPort) ;;Bereitschaft;
    If $Bereit == 'Hallo' Then ExitLoop
    Until 0

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

    WaitForGo()
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Verbunden", 0)
    ;~ TCPSend($OpenPort, $OpenPort)
    ControlEnable($Form1, '', $Button2)
    $Verbinden = False
    EndIf
    EndIf
    ;;;;;;;;;;;;;;;;;;;;;;;bis hier;;;;;;;;;;;;;;;;;;;;;;;;;
    WEnd

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

    Func Button1Click()
    $Verbinden = True
    EndFunc ;==>Button1Click

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

    Func Button2Click()
    ;~ TCPSend($OpenPort, 'Autoit{' & GUICtrlRead($Edit2) & '}')
    ;Trennen
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Status :Nicht Verbunden", 0)
    TCPSend($OpenPort, 'Exit')
    Sleep(1000)
    ControlDisable($Form1, '', $Button2) ;Deaktiviere den Trennen Button;
    EndFunc ;==>Button2Click

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

    Func Button3Click()
    ;sende den CMD Befehl;
    MsgBox(0,'',$OpenPort)
    TCPSend($OpenPort, 'CMD{' & GUICtrlRead($CMD_BEFEHL) & '}')
    If Not @error Then
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Warte nach Senden des CMD Befehls auf Rückantwort" , 1)
    WaitForGo()
    Else
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Fehler beim senden des CMD Befehls" & @TAB & @error, 1)
    EndIf
    EndFunc ;==>Button3Click

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

    Func Button4Click()
    ;Autoit Code Senden;
    ConsoleWrite('!Sende Autoit Code'&@CR)
    TCPSend($OpenPort, 'Autoit{' & GUICtrlRead($Edit2) & '}') ;Einzelner Befehl;
    If Not @error Then
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Warte nach Senden des Autoit Befehls auf Rückantwort", 1)
    WaitForGo()
    Else
    _GUICtrlStatusBar_SetText($StatusBar1, @TAB & "Fehler beim senden des Autoit befehls" & @TAB & @error, 1)
    EndIf
    EndFunc ;==>Button4Click

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

    Func CMD_BEFEHLChange()

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

    EndFunc ;==>CMD_BEFEHLChange
    Func CommandsChange()

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

    EndFunc ;==>CommandsChange
    Func Edit1Change()

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

    EndFunc ;==>Edit1Change
    Func Edit2Change()

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

    EndFunc ;==>Edit2Change

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

    Func Form1Close()
    WinClose($Form1)
    Button2Click() ;Verbindung trennen;
    TCPShutdown() ;TCP schließen;
    Exit ;Programm beenden
    EndFunc ;==>Form1Close

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

    Func Form1Maximize()

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

    EndFunc ;==>Form1Maximize
    Func Form1Minimize()

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

    EndFunc ;==>Form1Minimize
    Func Form1Restore()

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

    EndFunc ;==>Form1Restore
    Func Label1Click()

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

    EndFunc ;==>Label1Click

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

    Func WaitForGo()
    Do
    $Bereit = WaitForData($OpenPort) ;;Bereitschaft;
    If $Bereit == 'Bereit' Then ExitLoop
    Until 0
    EndFunc ;==>WaitForGo

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

    Func WaitForData($OpenPort)
    ConsoleWrite('Client :Warte auf Sendungen' & @CR)
    Do
    $Eingehend = TCPRecv($OpenPort, 900)
    If Not @error And StringLen($Eingehend) <> 0 Then
    ;~ MsgBox(0, 'Client', $Eingehend)
    Return $Eingehend
    EndIf
    Until 0
    EndFunc ;==>WaitForData

    [/autoit]


    Ab der Makierung hat die Variable $OpenPort auf einem einen 500´er wert? (Ist immer 552)

    Einmal editiert, zuletzt von pceumel (30. August 2011 um 18:45)

  • Mach doch wenn openport immer 552 ist oben einfach ein

    [autoit]

    Global Const $OpenPort = 552

    [/autoit]

    ;)
    Dann kann sie sich garnich ändern, und wenn du sie ändern willst dann kommt ein error und du weist in welcher dein $openport verändert wird/werden soll ! :)


    Er soll nicht 552 sein, das ist er auf einmal aber 8|
    Hab auch schon eine neue const variable gemacht und da dann $OpenPort gespeichert --> beide Futsch :rofl: