Пример
Скрипт без окна
Скомпилируйте данный пример через AutoIt3 Wrapper и запустите.
Сервер будет открыт на IP адресе 127.0.0.1 на порте 8080. Для завершения работы сервера, нажмите клавишу F1.
AutoItSetOption("MustDeclareVars", 1) #include "Http SC.inc" #include "Http SC Error.inc" #include "GelAllIp.au3" ; Объявляем переменные Global $aServer, $vSendData, $aBanList, $hOptimizationTimer, $fWhile ; Создаем сервер $aServer = _HttpSC_CreateServer($aBanList, "127.0.0.1", 8080, "My server", 0, @ScriptDir&"\My Server.log") If @Error Then Exit MsgBox(16, "CreateServer", _HttpSCError_ConvertError2Text(@Error, @Extended, True)); Ошибка ; Настраиваем сервер _HttpSC_ConfigServer($aServer, 20, 2, 100) If @Error Then MsgBox(16, "ConfigServer", _HttpSCError_ConvertError2Text(@Error, @Extended, True)); Ошибка _HttpSC_DeleteServer($aServer, $aBanList) Exit 2 EndIF ; Запускаем сервер _HttpSC_StartServer($aServer, $aBanList) If @Error Then MsgBox(16, "StartServer", _HttpSCError_ConvertError2Text(@Error, @Extended, True)); Ошибка _HttpSC_DeleteServer($aServer, $aBanList) Exit 3 EndIF ; Выводим уведомление MsgBox(0,"StartServer","Сервер запущен. IP сервера: 127.0.0.1; порт сервера: 8080. Нажмите F1 для выхода!", 5) $fWhile = 1 HotKeySet("{F1}", "_Exit") $hOptimizationTimer = TimerInit(); Таймер оптимизации сервера While $fWhile _HttpSC_ServerHandler($aServer, $aBanList, "_GetServerFile", "_Post", "_OtherReqest", "") Sleep(250) If TimerDiff($hOptimizationTimer) >= 10*60*1000 Then; 10*60*1000 = 10 мин. * 60 сек. * 1000 мсек. _HttpSC_ServerOptimization($aServer, 1); Принудительная оптимизация $hOptimizationTimer = TimerInit(); Устанавливаем новый таймер EndIF Wend HotKeySet("{F1}") ; Останавливаем и удаляем сервер _HttpSC_DeleteServer($aServer, $aBanList) If @Error Then MsgBox(16, "DeleteServer", _HttpSCError_ConvertError2Text(@Error, @Extended, True)); Ошибка Exit ; Функция обработки GET запроса Func _GetServerFile($sUrl, $hUserSocket, $sUserIp, $sHttpVer, $Reqest) If $sUrl = "/" Then $vSendData = '<head>'&@CRLF $vSendData &= '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'&@CRLF $vSendData &= '<title>HttpSC</title>'&@CRLF $vSendData &= '</head>'&@CRLF $vSendData &= '<p align="center"><font size="5"><b>HttpSC</b></font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">Состояние: Успех</font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">Дата: '&@MDAY&"/"&@MON&"/"&@YEAR&'</font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">Время: '&@HOUR&":"&@MIN&":"&@SEC&'</font></p>'&@CRLF $vSendData &= ' <form name="form1" method="post" action="post.php">'&@CRLF $vSendData &= ' Введите текст:<br />'&@CRLF $vSendData &= ' <textarea name="text" cols="80" rows="10"></textarea>'&@CRLF $vSendData &= ' <input name="line"></input>'&@CRLF $vSendData &= ' <input name="" type="submit" value="Отправить"/>'&@CRLF $vSendData &= ' </form>'&@CRLF $vSendData = _HttpSC_CreateAnswer($aServer, $vSendData, "HTTP/1.1", "200 Ok", _HttpSC_ConvertLastModifiedTime(@YEAR&"/"&@MON&"/"&@MDAY&' '&@HOUR&":"&@MIN&":"&@SEC), "text/html", "") Return $vSendData Else $vSendData = '<head>'&@CRLF $vSendData &= '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'&@CRLF $vSendData &= '<title>HttpSC</title>'&@CRLF $vSendData &= '</head>'&@CRLF $vSendData &= '<p align="center"><font size="5"><b>HttpSC</b></font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">Состояние: Ошибка 404</font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">Дата: '&@MDAY&"/"&@MON&"/"&@YEAR&'</font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">Время: '&@HOUR&":"&@MIN&":"&@SEC&'</font></p>'&@CRLF $vSendData = _HttpSC_CreateAnswer($aServer, $vSendData, "HTTP/1.1", "401 Unauthorized", "", "text/html", "", "") Return $vSendData EndIF EndFunc Func _OtherReqest($hUserSocket, $sUserIp, $Reqest) Return "" EndFunc Func _Post($sUrl, $hUserSocket, $sUserIp, $sHttpVer, $Reqest) $vSendData = '<head>'&@CRLF $vSendData &= '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'&@CRLF $vSendData &= '<title>HttpSC</title>'&@CRLF $vSendData &= '</head>'&@CRLF $vSendData &= '<p align="center"><font size="5"><b>HttpSC</b></font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">Состояние (POST): 200 Успех</font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">Дата: '&@MDAY&"/"&@MON&"/"&@YEAR&'</font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">Время: '&@HOUR&":"&@MIN&":"&@SEC&'</font></p>'&@CRLF $vSendData &= '<p align="left"><font size="3">POST данные запроса: </br>'&_HttpSC_PostReqestGetData($Reqest)&'</font></p>'&@CRLF $vSendData = _HttpSC_CreateAnswer($aServer, $vSendData, "HTTP/1.1", "200 OK", "", "text/html", "") Return $vSendData EndFunc Func _Exit() $fWhile = 0 EndFunc |
См. также