Вот небольшой пример веб-сервера, который работает совместно с любым браузером.
#ProgName="Web-сервер - пример"
Port=80 ; На этом порту будет работать сервер
*Buffer = AllocateMemory(10000)
If InitNetwork() = 0
MessageRequester(#ProgName, "Ошибка инициализации сетевой библиотеки!", #MB_OK|#MB_ICONERROR)
End
EndIf
If CreateNetworkServer(2, Port , #PB_Network_TCP)
Repeat
SEvent = NetworkServerEvent()
If SEvent
ClientID = EventClient()
Select SEvent
Case #PB_NetworkEvent_Connect ; Новый клиент подключился к серверу
Case #PB_NetworkEvent_Data ; От клинета пришли данные
ReceiveNetworkData(ClientID, *Buffer, 10000)
SendNetworkString(ClientID, "HTTP/1.0 200 OK"+Chr($0D)+Chr($0A))
SendNetworkString(ClientID, "Server: "+#ProgName+Chr($0D)+Chr($0A))
SendNetworkString(ClientID, "Content-Length: "+Str(?M2-?M1)+Chr($0D)+Chr($0A))
SendNetworkString(ClientID, "Content-Type: text/html"+Chr($0D)+Chr($0A))
SendNetworkString(ClientID, Chr($0D)+Chr($0A))
SendNetworkData(ClientID, ?M1, ?M2-?M1)
Case #PB_NetworkEvent_File ; От клиента пришел файл
Case #PB_NetworkEvent_Disconnect ; Клиент разорвал соединение с сервером
EndSelect
Else
Delay(20)
EndIf
ForEver
Else
MessageRequester(#ProgName, "Не удалось создать сервер на "+Str(Port)+" порту!", #MB_OK|#MB_ICONERROR)
EndIf
End
DataSection
M1:
IncludeBinary "Пример Web-сервера.html"
M2:
EndDataSectionЗапускаем его и в браузере вводим адрес http://127.0.0.1/
В итоге, в браузере отобразится веб-страничка, содержимое которой хранится в файле "Пример Web-сервера.html".
Файлы http://pure-basic.narod.ru/forum_files/WebServer_PB.rar

