Výsledky 1 až 8 z 8

Téma: [C#] IP komunikace

  1. #1

    Standardní [C#] IP komunikace

    Ahoj,
    potřebuju jen nakopnutí správným směrem. V C# jsem spíš občasný návštěvník a teď mám napsat aplikaci na výměnu dat přes intranet...

    V praxi jde o to, že na každé stanici pojede tento prográmek a periodicky bude posílat na intranet nějaké údaje (pár proměnných, cca do 1kB).
    Intranet = Apache + PHP + MySQL, takže si představuju asi zpracování GET/POST požadavků
    Naopak musí app i sledovat intranet a v případě změny okamžitě vyvolat akci (dialog s textem), ale reakční doba musí být do 5s!
    Normálně bych to řešil asi "olizováním" nějaké jednoduché stránky, ale tady si nejsem jist efektivivou řešení. Lepší by bylo, kdybych z intranetu mohl poslat info, který odchytnou prográmky na klientech a přeberou si to.

    A teď ten problém - klienti jsou rozházeni po několika pobočkách a v různých VLANech, takže broadcasty neprojdou. Jen normální internetová komunikace. Navíc je požadavek, aby se nemuselo NIC instalovat na klientské PC. NET Framework tam jede, ale např. MySQL Connector ne, takže přímo s SQL serverem komunikovat nepůjde (tedy ne jednoduše).

    Máte nějaký nápad co a kde hledat?
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  2. #2

    Standardní Re: [C#] IP komunikace

    budeš si muset napsat nějaký server kód, který bude fungovat na pro klienty dostupné IP a bude běžet stále

    klient se tam přihlásí a server bude si na něj udržovat otevřené připojení a bude vědět, kam data poslat

    z phpka už jen notifikuješ servřík
    (fsockopen)
    a ten to broadcastne svým přihlášeným klientům

  3. #3

    Standardní Re: [C#] IP komunikace

    Aktuálně jsem se v tom trochu hrabal a jedna část je mi už rámcově jasná. Základ aplikace už testuju, v pravidelných intervalech není problém ani avízovat aktivitu na centrální server.
    Jen pořád tápu nad opačným směrem.
    Je sice možnost olizovat status stránky na serveru cca každé 2sec, ale to mi přijde dost čuňárna.

    To co popisuješ nevím jak napsat. Onen server je JEN ten intranetový. Tím že je síť rozhozená na cca 7 lokalit, normální "broadcasty" neprojdou, jedině mít v každé podsíti stanici s dalším "serverem"...
    A nebo napsat tu aplikaci jako server, aby odchytávala nějakou komunikaci - ale tam už vařím z vody. Netuším ani jaké protokoly v síti vůbec projdou a taky si nejsem jistý jestli by to šlo udělat jako simple exe app (bez nutnosti instalace)
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  4. #4

    Standardní Re: [C#] IP komunikace

    no olizovat stránku každých pár sekund není taková prasárna, ale lepší je minimalizovat cpu náklady a udělat si na webserveru jen minimální službu, která ti rovnou řekne co se změnilo tak aby se ti to i jednoduše parsovalo XML/JSON

    prostě jen službička co rovnou řekne změny a nic jiného

  5. #5

    Standardní Re: [C#] IP komunikace

    Takto to mám - "stránka" jen vyhazuje simple status, takže se přenáší po síti vždy cca 4 Byty
    Zabíjím tím dvě mouchy naráz, protože olizováním má server pořád přehled o aktivních klientech.
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  6. #6

    Standardní Re: [C#] IP komunikace

    Ještě taková věcná, určitě si ten výsledek (tj. to co předáš prvnímu tazateli) ukládej do cache, i na tu 1-2s to hodně pomůže.

  7. #7

    Standardní Re: [C#] IP komunikace

    Zkusím popsat k čemu má celá věc sloužit.
    Aktuálně používáme ve firmě intranetový systém napsaný na míru pro všechny potřebné agendy. Hlavní problém je v tom, že když někdo vyvěsí novou informaci, jediný způsob jak to ostatní zjistí je nutnost otevření stránky a přihlášení na portál. Šlo by to sice obejít neustále spuštěnou stránkou s JS, která se bude automaticky aktualizovat a případné změny na nástěnce ohlásí popup oknem. Není to sice příliš elegantní, ale donedávna jediné uvažované řešení. Navíc je to zase o uživateli, aby nezapomněl nechat puštěné okno prohlížeče.
    Mail používat rozumně nejde - exchange účet je totiž vázaný na přihlášeného uživatele, naproti tomu na portál se přihlásí ten kdo tam opravdu fyzicky sedí (existují i zaměstnanci zatupující, nebo agenturní, kteří nemají exchange účet)
    Teď vyvstal další požadavek - aby každý v případě konfliktu měl možnost zavolat o pomoc. Tj. v případě nouze klávesová zkratka nebo dvojklik a v okolních kancelářích jim vyskočí alarm na obrazovce.

    Takže aplikace bude jednak sledovat změny na portálu - jakmile přibude novinky, v systray vyhodí bublinu pro info a jednak musí umět rychle přivolat pomoc. Zatím to zkouším řešit právě odesláním GET požadavku, stránka ostatním klientům vyhodí příslušný status a ostatní app zareagují vyhozením modálního okna.
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  8. #8

    Standardní Re: [C#] IP komunikace

    Takle se ono "olizovani" obvykle resi ve webovych aplikacich http://en.wikipedia.org/wiki/Comet_(programming) V kratkosti jde o to ze se nechava otevrene HTTP spojeni a server jakmile zjisti ze se neco zmenilo, tak do daneho spojeni posle informaci o zmene a spojeni zavre (kvuli cachovani v proxy serverech). Pote klientska aplikace spojeni znovu otevre. A opet kvuli proxy se nedoporucuje nechavat spojeni otevrene dele nez x minut. Vyhoda oproti aktivnimu dotazovani se na stav je, ze informace o zmene prijde ihned (resp +- latence spojeni) a neni potreba neustale navazovat http spojeni.
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. Zabezpeceni komunikace v LAN
    Založil motorolarulez v sekci fóra Sítě
    Odpovědí: 13
    Poslední příspěvek: 09.03.2009, 14:45
  2. COM komunikace s PIC16F628
    Založil tichy v sekci fóra Elektronika a bastlení
    Odpovědí: 6
    Poslední příspěvek: 21.10.2007, 18:36
  3. Komunikace kamery s PC ?
    Založil Zetes v sekci fóra Digitální foto a video
    Odpovědí: 1
    Poslední příspěvek: 06.07.2007, 12:38
  4. selhání komunikace
    Založil Lentes Vladislav v sekci fóra Optické, přenosné a jiné disk(et)y
    Odpovědí: 2
    Poslední příspěvek: 18.07.2005, 17:17
  5. Komunikace 2 PC - XPcka
    Založil kuda v sekci fóra Sítě
    Odpovědí: 1
    Poslední příspěvek: 13.12.2004, 19:31

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •