Portál AbcLinuxu, 27. dubna 2024 04:40


Dotaz: Serverová aplikace - jak udělat networking?

26.8.2009 10:17 kralyk z abclinuxu | skóre: 29 | blog:
Serverová aplikace - jak udělat networking?
Přečteno: 461×
Odpovědět | Admin
Čau,
Makám na jedné malé aplikaci, potřebuju aby se chovala jako server a aby k tomu bylo GUI.
GUI udělám určitě v Qt, s tím problém není, ale teď přemejšlím jak udělat síťovou část.

Buď můžu humpolácky pomocí Qt-networkingu udělat síťovou část přímo GUI aplikaci, ale to by mělo nevýhodu, že kdyby to já/někdo chtěl později portovat do třeba GTK nebo jinam, byl by problém. A taky to není Unix-košér.

Nejlepší by asi bylo udělat zvlášť server-daemon nezávislý na GUI a pak jen GUI app která bude s daemonem komunikovat přes nějaké to IPC.

Takže nastává problém jak napsat síťovou část daemonu bez Qt - můžu prostě použít sockety, ale to pak (asi) nepůjde portovat na Windows ne? Technicky vzato bych mohl napsat zvlášť daemon pro POSIX a windows, ale raději bych nějakou cross-platform lightweight networking knihovnu, neznáte něco?

P.S. Co se týče IPC - použil bych nejraději named pipes, jde to jak na posixu tak na windows. Nemáte nic proti tomu - je to košér, že? ;-)
What Big Oil knew about climate change
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.8.2009 10:28 Sten Fil | skóre: 4
Rozbalit Rozbalit vše Re: Serverová aplikace - jak udělat networking?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Kdyz to chces prenositelne a delas to v Qt, proc nepouzijes Qt i na sitovou cast?

Mrkni http://apr.apache.org/

Kdysi sem ji chtel pouzit, ale pak k tomu nejak nedoslo :-), taze zkusenosti s ni nemam.

 

26.8.2009 11:31 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Serverová aplikace - jak udělat networking?
No protože někteří lidé nemají Qt knihovny rádi a nechtějí je mít v systému (pokud vím). Takže kdyby nastala eventualita portovat GUI do GTK, byl by problém, protože GTK nemá networking, nebo jo?

Díky za link, mrknu na to...
26.8.2009 14:35 fafsdfs
Rozbalit Rozbalit vše Re: Serverová aplikace - jak udělat networking?

V tom případě bude asi nejlepší kouknout po nějakem malem multiplatfornim wraperu pro C++, ktery by jsi mohl snadno pridat ke tve aplikaci. Vim o několika, najdi si vhodny sám.

Ja osobně, když jsem ve stejne situaci, používám network core z wxWidgets a k výsledné binárce přikládám zkompilovanou příslušnou knihovnu, takže uživatel nic nepozná. Nevím, jak jde tohle použít v Qt.

26.8.2009 11:45 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Serverová aplikace - jak udělat networking?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jaký je problém se sokety ve windows? Vždyť je mají obšlehnuté z BSD. Nějaké drobné rozdíly tam jsou, ale ty jsou řešitelné několika #ifdefy.

Named pipes - to pak ale budou muset být obě části na stejném stroji. Byla by škoda takové omezení zavádět.
26.8.2009 14:45 potejo
Rozbalit Rozbalit vše Re: Serverová aplikace - jak udělat networking?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Doporučuju použít knihovnu asio, která je součástí knihovny boost od verze 1.35, takže všude, kde je boost, budete mít funkční sít. Asio má dle mého kvalitní dokumentaci, dost příkladů pro inspiraci a můžete použít jak blokující, neblokující tak i ssl sockety. Sám jsem v ní psal síťovou část a mohu doporučit.

26.8.2009 20:00 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Serverová aplikace - jak udělat networking?
Hmm, asi to tak udělám no... von se boost celkově asi bude hodit... dík za připomenutí, že boost existuje ;-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.