Не могли бы вы поделиться примером - схемой работы веб сервера, созданного в HiAsm? Хочу разобраться на примере готовых схем, как-чего правильно делать...
Я нашел некий пример, и только начинаю его осваивать.
Add(MainForm,3006772,105,112)
{
Left=20
Top=105
Width=1206
Height=781
link(onCreate,4557003:##open,[])
}
Add(TCP_ServerEx,4557003,175,126)
{
link(onEvent2,5619286:doCharset,[])
link(onEvent21,9026241:doAdd,[(226,139)(226,186)])
}
BEGIN_SDK
Add(EditMultiEx,9971778,3,3)
{
WorkCount=#6:##open|
EventCount=#8:onEvent2|9:onEvent21|
Width=916
Height=389
}
Add(TCP_Connection,916654,42,56)
{
link(onRead,6368625:doEvent1,[(96,62)(96,13)])
}
Add(FormatStr,14028257,683,231)
{
Mask="%2Content-Length: %1\n\r\n\r"
link(onFString,5832223:doWork2,[])
link(Str1,6544603:Size,[(689,216)(650,216)])
link(Str2,2893471:Text,[])
}
Add(Convertor,8776093,637,273)
{
Mode=11
link(onResult,5832223:doWork3,[(739,279)])
link(Data,6544603:Stream,[])
}
Add(StrList,2893471,690,162)
{
Strings=#15:HTTP/1.1 200 OK|32:Server: mywebserver/1.0.0(Win32)|
}
Add(BlockFind,6091776,203,56)
{
IncludeBlock=1
StartBlock="GET "
EndBlock=" HTTP"
link(onSearch,12312877:doReplace,[])
}
Add(Hub,2110309,553,168)
{
OutCount=4
link(onEvent1,6544603:doOpen,[])
link(onEvent2,14028257:doString,[(618,181)(618,237)])
link(onEvent3,8776093:doConvert,[(611,188)(611,279)])
link(onEvent4,6544603:doClose,[(626,195)(626,181)])
}
Add(HubEx,2954087,735,112)
{
Angle=3
link(onEvent,916654:doSend,[(739,37)(30,37)(30,69)])
}
Add(Replace,12312877,245,56)
{
SubStr="/"
DestStr="\\"
link(onReplace,8984929:doStrCat,[])
}
Add(StrCat,8984929,287,56)
{
Str1="www"
link(onStrCat,15918594:doEvent1,[])
}
Add(Memory,14307555,378,56)
{
link(onData,2500498:doFileExists,[(422,62)(422,83)])
}
Add(FileStream,6544603,637,168)
{
link(FileName,14307555:Value,[(643,152)(384,152)])
}
Add(HubEx,5832223,735,231)
{
Angle=3
link(onEvent,2954087:doWork3,[])
}
Add(FileTools,2500498,434,56)
{
link(onEnd,12755746:doEvent,[])
}
Add(IndexToChanel,12755746,483,56)
{
link(onEvent1,10876968:doData,[(576,62)(576,118)])
link(onEvent2,2110309:doEvent1,[(534,69)(534,174)])
}
Add(DoData,10876968,637,112)
{
link(onEventData,2954087:doWork2,[])
link(Data,7685006:Text,[])
}
Add(StrList,7685006,637,49)
{
Strings=#15:‹!DOCTYPE html›|0:|6:‹head›|0:|30: ‹title›Форма входа‹/title›|576: ‹style› body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; } form { border: 1px solid #ccc; padding: 20px; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } label { display: block; margin-bottom: 10px; } input { width: 200px; padding: 10px; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 5px; } button { background-color: #4CAF50; color: white; padding: 12px 20px; border: none; border-radius: 5px; cursor: pointer; } button:hover { background-color: #45a049; } ‹/style›|7:‹/head›|6:‹body›|40: ‹form action="/login" method="post"›|28: ‹h2›Форма входа‹/h2›|43: ‹label for="firstName"›Имя:‹/label›|68: ‹input type="text" id="firstName" name="firstName" required›|8: |46: ‹label for="lastName"›Фамилия:‹/label›|66: ‹input type="text" id="lastName" name="lastName" required›|8: |48: ‹button type="submit"›Отправить‹/button›|11: ‹/form›|7:‹/body›|7:‹/html›|
}
Add(Hub,6368625,119,7)
{
link(onEvent1,6091776:doSearch,[(168,13)(168,62)])
link(onEvent2,9971778:onEvent2,[(536,20)(536,9)])
}
Add(Hub,15918594,329,56)
{
link(onEvent1,14307555:doValue,[])
link(onEvent2,9971778:onEvent21,[(597,69)(597,16)])
}
END_SDK
Add(RichEdit,13943924,343,126)
{
Left=5
Top=5
Width=255
Height=735
}
Add(RichEdit,9026241,348,180)
{
Left=265
Top=-5
Width=275
Height=735
}
Add(Hub,7211714,294,126)
{
link(onEvent1,13943924:doClear,[(326,132)(326,139)])
link(onEvent2,13943924:doAdd,[(326,139)(326,132)])
}
Add(Charset,5619286,245,126)
{
Type=11
link(onCharset,7211714:doEvent1,[])
}
Add(WebBrowser,12805476,602,161)
{
Left=545
Top=15
Width=640
Height=540
URL="192.168.1.39"
}
Add(Timer,737055,518,161)
{
Interval=50
AutoStop=1
link(onTimer,11335578:doIPByHost,[])
}
Add(Host,11335578,560,154)
{
link(onIPByHost,12805476:doNavigate,[])
}
Цель: создать в локальной сети веб страничку с формой авторизации. Что то типа личного кабинета. И в этом личном кабинете нужно будет заполнить несколько полей и отправить на сервер.