Вверх ↑
Ответов: 655
Рейтинг: 18
#1: 2017-04-20 14:59:00 ЛС | профиль | цитата
Netspirit, Если не затруднит объясни пожалуйста про потоки внутри сервера и клиента.
Собственно мне требуется на клиенте проверять наличие новых данных в БД, затем паковать их и отправлять на сервер.
Одно из условий - пока сервер обрабатывает полученный пакет от клиента, клиент не должен слать последующие пакеты.
Когда сервер обработает пакет он отключит клиента, собственно после отключения можно будет повторно подключиться и отправить следующие данные.
Такая схема с отключением\подключением сделана ввиду того что данные шлются в HTTP POST запросах, ну и потому что появляются они не часто и удерживать соединение не имеет смысла.

Вопрос по потокам следующий:
Какие события происходят в одном потоке а какие в разных?
onConnect\onDisconnect это события одного потока?
onReceive - другого?
Правильно ли в моей схеме используется критическая секция?

Add(MainForm,2953706,21,105)
{
}
Add(TCPClient,12524208,147,98)
{
Port=8080
Point(onErrorConnect)
Point(onErrorSend)
link(onConnect,1207998:doWork1,[])
link(onDisconnect,10157546:doWork2,[])
link(onErrorConnect,5078233:doWork2,[])
link(onErrorSend,5078233:doWork3,[(200,139)])
}
Add(ChanelToIndex,1207998,217,112)
{
link(onIndex,2449697:doValue,[])
}
Add(SafeMode,11531109,315,112)
{
Name="con"
link(onSafeMode,15323504:doData,[])
}
Add(If_else,12946932,413,187)
{
Op2=Integer(1)
link(onTrue,7776816:In,[])
link(Op1,11721838:Var,[])
}
Add(GlobalVar,11721838,413,112)
{
Name="con_state"
Data=Integer(1)
}
Add(HubEx,10157546,196,119)
{
link(onEvent,1207998:doWork2,[])
}
Add(HubEx,5078233,196,126)
{
Angle=3
link(onEvent,10157546:doWork3,[])
}
Add(Thread,14368023,314,187)
{
link(onExec,102960:doSafeMode,[])
}
Add(LineBreak,7517986,644,187)
{
Caption="что_то_дальше_выполняется"
Primary=[7776816,-175,0]
}
Add(SafeMode,102960,364,187)
{
Name="con"
WaitMode=1
link(onSafeMode,12946932:doCompare,[])
}
Add(Memory,2449697,266,112)
{
link(onData,11531109:doSafeMode,[])
}
Add(DoData,15323504,364,112)
{
link(onEventData,11721838:doValue,[])
link(Data,2449697:Value,[(370,100)(255,100)(255,156)(272,156)])
}

карма: 0

0