Hilfe bei TCP Script

  • Hi,
    Ich hab mir ein Script programmiert um bestimmte Sachen über WLAN zu automatisieren.

    So weit bin ich bis jetzt:

    Spoiler anzeigen
    [autoit]

    #include <ScreenCapture.au3>

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

    Global $IP = "192.168.137.1", $ConnectedSocket = -1

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

    ; Startet den TCP Service
    TCPStartup()

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

    ; Erstellt einen lauschenden Port
    $MainSocket = TCPListen($IP, 80)

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

    If $MainSocket = -1 Then
    MsgBox(16, "Connection Error", "Could not connect to local socket")
    Exit
    EndIf

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

    While True
    If $ConnectedSocket = -1 Then
    Do
    $ConnectedSocket = TCPAccept($MainSocket)
    Until $ConnectedSocket <> -1
    EndIf
    $sRecv = TCPRecv($ConnectedSocket, 2048)
    If $sRecv <> "" Then
    $sCommand = StringRegExp($sRecv, "GET (.*?) HTTP", 1)
    If IsArray($sCommand) Then
    Switch $sCommand[0]
    Case "/ShowScreen"
    $sTCPSend = _SendScreenPicture()
    Case "/"
    $sTCPSend = _GenerateInfo()
    EndSwitch
    TCPSend($ConnectedSocket, $sTCPSend)
    Dim $sCommand
    EndIf
    EndIf
    TCPCloseSocket($ConnectedSocket)
    $ConnectedSocket = -1
    WEnd

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

    TCPShutdown()

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

    Func _GenerateInfo()
    ConsoleWrite("/Info" & @CRLF)
    $sHTML = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"' & @CRLF & '"http://www.w3.org/TR/html4/loose.dtd">' & @CRLF & _
    '<html><head><title>TCP Fernsteuerungs-System</title></head><body><h1>Willkommen auf der Hauptseite des TCP Fernsteurungs-Systems</h1>' & _
    "<p>Computername: " & @ComputerName & "</p><p>Angemeldeter User: " & @UserName & "</p><br /><h3>Fenster</h3>"
    $aWindows = WinList()
    $sHTML &= '<table border="1"><tr><th>Fenstername</th><th>Status</th></tr>'
    For $i = 1 To $aWindows[0][0]
    If $aWindows[$i][0] = "" Or $aWindows[$i][0] = "D3D9Window" Or $aWindows[$i][0] = "Dummy" Or $aWindows[$i][0] = "MSCTFIME UI" Or _
    $aWindows[$i][0] = "Default IME" Then
    ContinueLoop
    EndIf
    $sHTML &= '<tr><td>' & $aWindows[$i][0] & '</td><td>' & WinGetState($aWindows[$i][0]) & '</td></tr>'
    Next
    $sHTML &= "</table><h3>Prozesse</h3><ul>"
    $aProzesse = ProcessList()
    For $i = 1 To $aProzesse[0][0]
    $sHTML &= '<li>' & $aProzesse[$i][0] & '</li>'
    Next
    $sHTML &= '</ul></body></html>'
    Dim $aProzesse, $aWindows
    Return $sHTML
    EndFunc ;==>_GenerateInfo

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

    Func _SendScreenPicture()
    ConsoleWrite("/ShowScreen" & @CRLF)
    $hBmp = _ScreenCapture_Capture("")
    _ScreenCapture_SaveImage(@TempDir & "\NetImage.jpg", $hBmp)
    $sData = FileRead(@TempDir & "\NetImage.jpg")
    $sHeader = "HTTP/1.1 200 OK" & @CRLF & _
    "Content-Type: image/jpeg" & @CRLF & _
    "Content-Length: " & StringLen($sData) & @CRLF & _
    "Connection: close" & @CRLF & @CRLF & $sData
    FileDelete(@TempDir & "\NetImage.jpg")
    Return $sHeader
    EndFunc ;==>_SendScreenPicture

    [/autoit]

    Nur kommt häufig ein Fehler das die Netzwerkverbindung zurückgesetzt wurde. Wie kann ich das Problem lösen.
    (Verbinde mit IPod Touch zu der IP-Adresse meines Laptops)

    Einmal editiert, zuletzt von Molaynox (22. Mai 2011 um 20:53)