Jeden nebo vice IP portu?

Martin Záruba swz na volny.cz
Pátek Duben 22 11:10:04 CEST 2016


Buď to já neumím, nebo to nejde. V podstatě mám možnost na socketu 
vyvolat např. RecvByte, kde mohu uvést jak dlouho má čekat. Pak se 
řízení vrátí systému dokud nepřijdou data nebo neprojde Timeout. Druhou 
možností je vyvolat WaitingData, kde se dozvím, zda jsou nějaká data, 
ale pokud nejsou a budu jej volat ve smyčce, zadusím procesor. Pokud dám 
do smyčky delay, bude se dít to, že data vždy budou čekat, dokud 
prodleva nezkončí. Ale to by asi fungovalo.

Martin Záruba

Dne 22.4.2016 v 10:58 Ladislav Vaiz napsal(a):
> Unixová klasika je jeden velký select(), který čeká na data jak ze 
> standardního vstupu tak ze soketů všech druhů.
> Se smyčkou obsluhy zpráv se to asi moc nesnáší, ale ten select by mohl 
> být v druhém vlákně. Celkem tedy jedno vlákno pro GUI, druhé pro select.
> Delfi ale neznám a nevím, zda poskytují přístup k selectu.
> L.
>
> Martin Záruba napsal(a):
>> No jo, ale jak to jinak udělat, když naprostou většinu doby čekáte, 
>> až přijde odpověď. V té době se řízení vrátí systému.
>> Druhou možností by bylo stále testovat, zda již nějaká data nepřišla, 
>> ale to bude strašně dusit procesor. Proto mi ty thready, které 
>> vlastně stále jen čekají, připadalo jako elegantní řešení.
>>
>> Martin Záruba
>>
>> Dne 22.4.2016 v 10:05 Ondřej Janovský napsal(a):
>>> U nás jsme to doteď psali v Javě, teď jsme zkusili Node.js pro menší 
>>> projekty. Výhodou je, že je dostatek frameworků (dokonce kvalitních).
>>>
>>> S Delphi nevím. Ale pokud by to mělo mít 1000 aktivních zařízení, 
>>> pak bych šel jinou cestou než 1000 threadů.
>>>
>>> Oja
>>>
>>>
>>> On 04/22/2016 09:23, Martin Záruba wrote:
>>>> V podstatě spojení je jen "přes data".
>>>>
>>>> 1) Řídící jednotka se aktivně připojí k serveru, aby nemusela mít 
>>>> veřejnou IP, ale pak čeká.
>>>>
>>>> a)  Server pošle dotaz, řídící jednotka odpoví, server uloží data 
>>>> na disk. To se stále v intervalu cca 10 vteřin opakuje. Jedná se 
>>>> tedy v tomto případě o prostý sběr dat.
>>>> b) Server pošle povel z fronty povelů (bod 2b dále), řídící 
>>>> jednotka jej provede a odpoví jak jej provedla. Povel se z fronty 
>>>> smaže. Povely jsou několik byte a jsou velmi řídké.
>>>>
>>>> 2) Klient se aktivně připojí k serveru, aby nemusel mít veřejnou IP.
>>>> a) Pošle požadavek na data, server je najde v souboru a pošle mu je.
>>>> b) Pošle povel. Server jej uloží do fronty čekajících povelů.
>>>>
>>>> Chci to psát v Delphi. Asi existují vhodnější prostředí, ale toto 
>>>> snad celkem slušně znám.
>>>>
>>>> Martin Záruba
>>>>
>>>> Dne 22.4.2016 v 9:06 Ondřej Janovský napsal(a):
>>>>> Mohu to chápat, že klient je propojen přímo s řídící jednotkou? 
>>>>> Tedy, že server je v podstatě ICQ, JABBER, WhatsUp pro komunikaci 
>>>>> s řídícími jednotkami?
>>>>>
>>>>> A v čem to chcete psát?
>>>>>
>>>>> Oja
>>>>>
>>>>>
>>>>>
>>>>> On 04/22/2016 08:58, Martin Záruba wrote:
>>>>>> Zpočátku cca 10, ale konečný stav by mohl být okolo 1000.
>>>>>> V naprosté většině k jedné řídící jednotce bude připojen jen 
>>>>>> jeden klient, ale může jich být i více (2 až 3), naopak často 
>>>>>> nebude žádný, t.j. server bude jen zapisovat přijatá data, řídící 
>>>>>> jednotky jsou zcela autonomní. Dat ja ale poměrně málo, cca 
>>>>>> 100byte za vteřinu. Musí to přijatelně chodit i s velmi pomalým 
>>>>>> připojením (přes mobil, který dělá AP a často v místech kde 
>>>>>> funguje jen GPRS). Zkoušel jsem přenos, kdy notebook byl připojen 
>>>>>> k internetu přes mobil s EDGE a 5x přenos na normální PC a zpět. 
>>>>>> Latence byla strašlivá, ale chodilo to bez chyb, rychlost v mém 
>>>>>> případě je naprosto nevýznamná.
>>>>>>
>>>>>> Martin Záruba
>>>>>>
>>>>>> Dne 22.4.2016 v 8:41 Ondřej Janovský napsal(a):
>>>>>>> Kolik očekáváte řídících jednotek a kolik klientů? Jak masivní 
>>>>>>> komunikaci?
>>>>>>> A v čem to budete psát?
>>>>>>>
>>>>>>> Existuje ještě cesta, kterou jde Node.js, Vert.x.
>>>>>>>
>>>>>>> Oja
>>>>>>>
>>>>>>> On 04/22/2016 06:15, Martin Záruba wrote:
>>>>>>>> Díky všem za rady. Udělám dva porty, jeden pro řídící jednotky 
>>>>>>>> a jeden pro klienty.
>>>>>>>> Ještě bych se rád zeptal, zda myslíte, zda udělat jednodušší 
>>>>>>>> variantu, t.j.:
>>>>>>>> 1) Někdo se připojí, vytvoří se vlákno, v něm se vytvoří 
>>>>>>>> socket, otevře se, udělá se co je třeba, zavře se socket, zruší 
>>>>>>>> se socket, ukončí a odstraní se vlákno.
>>>>>>>> nebo
>>>>>>>> 2a) Někdo se připojí, vytvoří se vlákno, v něm se vytvoří 
>>>>>>>> socket, otevře se, udělá se co je třeba, zavře se socket,vlákno 
>>>>>>>> se uspí.
>>>>>>>> 2b) Někdo se připojí, pokud existuje uspané vlákno probudí se, 
>>>>>>>> otevře se socket,udělá se co je třeba, zavře se socket,vlákno 
>>>>>>>> se uspí. Pokud neexistuje volné vlákno, pak 2a)
>>>>>>>>
>>>>>>>> Ve variantě 2) by se nemuselo stále vytvářet a rušit vlákno, 
>>>>>>>> ale je to složitější. Nedovedu posoudit, jak náročné je 
>>>>>>>> vytvořit a zrušit vlákno a zda se vyplatí tento krok dělat co 
>>>>>>>> nejméně.
>>>>>>>>
>>>>>>>> Martin Záruba
>>>>>>>>
>>>>>>>> Dne 21.4.2016 v 15:20 Radek Benedikt napsal(a):
>>>>>>>>> Z hlediska SW je asi jeden port "hezci" ale ma to jedno velke 
>>>>>>>>> ALE. Hodne
>>>>>>>>> spatne se to filtruje, pokud to z hlediska site ma mit ruzna 
>>>>>>>>> opravneni.
>>>>>>>>> Treba cidla ve vodni elektrarne se hlasi ke "koncentratoru" a 
>>>>>>>>> na ten se
>>>>>>>>> hlasi sef z domu mimo objekt. Pokud jsou to dve ruzne IP na 
>>>>>>>>> koncentratoru na
>>>>>>>>> dvou ruznych VLAN je to nuda. Kdyz je to na jedne IP a v jedne 
>>>>>>>>> VLAN urcene
>>>>>>>>> pro "technologii" ale ma to aspon dva ruzne IP porty na 
>>>>>>>>> kterých to
>>>>>>>>> komunikuje, tak se to da na nejakem blackboxu jeste jednoduse 
>>>>>>>>> omezit co kdo
>>>>>>>>> a kam smi. A udelat to na jednom portu s ruznymi opravnenimi, 
>>>>>>>>> tak to znamena
>>>>>>>>> lezt do paketu a filtrovat na vyssich vrstvách a to je na 
>>>>>>>>> odstrel toho kdo
>>>>>>>>> to vymyslel. A navic si nedokazu predstavit gramatiku pro 
>>>>>>>>> vyhodnoceni, pokud
>>>>>>>>> by mely byt pouzity dva na sobe nezavisle protokoly, které 
>>>>>>>>> postupne vyviji
>>>>>>>>> dve rozdilne party. Takze tudu NEEEEEEEEEEEEEE.
>>>>>>>>>
>>>>>>>>> Radek (benedikt2hw.cz)
>>>>>>>>>
>>>>>>>>> -----Original Message-----
>>>>>>>>>
>>>>>>>>> Nevidim dovod preco by to nemalo byt mozne. Na jednom porte 
>>>>>>>>> mozete otvorit
>>>>>>>>> tolko spojeni kolko vam len pamat a operacny system dovoli.
>>>>>>>>> Ostatne je zalezitost komunikacneho protokolu a ten mate pod 
>>>>>>>>> kontrolou.
>>>>>>>>> Ci je toto vhodne riesenei problemu si ale nedovolim posudit.
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>>>>> Hw-list na list.hw.cz
>>>>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ---
>>>>>>>> Tato zpráva byla zkontrolována na viry programem Avast Antivirus.
>>>>>>>> https://www.avast.com/antivirus
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>>>> Hw-list na list.hw.cz
>>>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>>
>>>>>>>
>>>>>>> -- 
>>>>>>> *Ondřej Janovský
>>>>>>> Alarex-Group s.r.o.
>>>>>>> *
>>>>>>> mobil: +420 723 616 751
>>>>>>> em na il: ondrej.janovsky na alarex.cz
>>>>>>>
>>>>>>> www.m2marchitect.cz <http://www.m2marchitect.cz>
>>>>>>> www.alarex.cz <http://www.alarex.cz>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>>> Hw-list na list.hw.cz
>>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>>
>>>>>>
>>>>>> ---
>>>>>> Tato zpráva byla zkontrolována na viry programem Avast Antivirus.
>>>>>> https://www.avast.com/antivirus
>>>>>>
>>>>>> _______________________________________________
>>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>>> Hw-list na list.hw.cz
>>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>>
>>>>>
>>>>> -- 
>>>>> *Ondřej Janovský
>>>>> Alarex-Group s.r.o.
>>>>> *
>>>>> mobil: +420 723 616 751
>>>>> em na il: ondrej.janovsky na alarex.cz
>>>>>
>>>>> www.m2marchitect.cz <http://www.m2marchitect.cz>
>>>>> www.alarex.cz <http://www.alarex.cz>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>> Hw-list na list.hw.cz
>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>>>
>>>> ---
>>>> Tato zpráva byla zkontrolována na viry programem Avast Antivirus.
>>>> https://www.avast.com/antivirus
>>>>
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>>
>>> -- 
>>> *Ondřej Janovský
>>> Alarex-Group s.r.o.
>>> *
>>> mobil: +420 723 616 751
>>> em na il: ondrej.janovsky na alarex.cz
>>>
>>> www.m2marchitect.cz <http://www.m2marchitect.cz>
>>> www.alarex.cz <http://www.alarex.cz>
>>>
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> ---
>> Tato zpráva byla zkontrolována na viry programem Avast Antivirus.
>> https://www.avast.com/antivirus
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


---
Tato zpráva byla zkontrolována na viry programem Avast Antivirus.
https://www.avast.com/antivirus



Další informace o konferenci Hw-list