Per 'framework di rete' intendo un'applicazione/libreria (semplice codice, niente di trascendentale) che implementa tutti gli aspetti della connessione a basso livello fornendo al programmatore un'API di livello più elevato alla quale interfacciarsi. Lavorando in questo modo a te non interessa più tutto ciò che sta sotto. Non chiamerai più direttamente la "send" o la "recv" del socket, tanto per capirci, ma la chiamata di tale framework che poi si andrà ad interfacciare a "send" o "recv" (in una maniera che 9 volte su 10 sarà migliore rispetto a quella in cui lo faresti tu o io).Scusate mi inserisco di OT per chiedervi cosa si intende per framework.
E' soltanto un livello di astrazione in più che applichi al tuo codice, astrazione che ti permettere di scrivere codice più leggibile, compatto e ragionevolmente bug-less, per lo meno per ciò che riguarda la mera connessione.
Non conosco C++ ma, mosso da curiosità, ho cmq fatto una ricerca e ho scoperto che frameworks di rete per tale linguaggio ne esistono (e ci mancherebbe!) e più di uno.
Quelli riportati di seguito sono asincroni (basati su select, poll, epoll, ecc...):
http://www.kegel.com/c10k.html#frameworks
...ma mi pare ragionevole pensare che ne esistano anche di sincroni (basati su thread, processi multipli, ecc...).
Lo stesso approccio andrebbe utilizzato in un qualunque linguaggio, imo, non solo in C++.
Un programmatore python, per dire, non si sognerebbe mai e poi mai di implementare del codice di rete utilizzando direttamente socket, select o poll, ma si appoggerà ad asyncore, asynchat, Twisted, SocketServer o similari. Per Ruby idem e lo stesso credo accada anche in Java.
Se alka è d'accordo propongo di mettere un thread in rilievo in cui elencare i principali frameworks di rete per i principali linguaggi e in cui viene apertamente sconsigliato l'utilizzo diretto di socket, select e quant'altro per la scrittura di applicazioni di rete.
Trovo troppo assurdo che in tali topic vengano puntualmente proposte soluzioni che sono, imo, da evitare come la peste.
Ti ho capito benissimo.Mi trovi pienamente d'accordo billiejoex e, per mio conto aggiungo, che la stragrande maggioranza di utilizzo che si fa ora come ora di socket (o winsocket per quanto riguarda Windows), e' limitato a "pseudo applicazioni" scritte senza avere il minimo background di protocolli e architetture di rete ... e chi mi vuol capire ha capito ...
Ma anche nel mio caso, evito qualsiasi altro commento in piu' perche' i flame partono immediatamente e la gente e' un po' nervosetta ...
Ovviamente, il discorso non e' riferito all'autore del presente thread.
Io una proposta l'ho lanciata. Vediamo se riesce ad avere seguito.![]()