Newsgroup: it.comp.os.linux.development
Titolo: socketCC

Ciao a tutti,
mi sapreste indicare dove trovare una guida, un tutorial o qlc di
simile che riguardi questa utilissima libreria?
Cercando con google ho trovato solo un'articolo che la introduce, e dal
codice (che mi sono scaricato) non è che si capisce molto...
tnx
gabo 

gabo wrote:

Allora non so proprio come spiegarmi. Ho appena scaricato il pacchetto. E'
una libreria di 3000 righe di codice circa. E la cosa più bella hai il
codice sorgente da cui potrai creare una libreria shared o statica od
entrambe oppure compilare e linkare direttamente sul tuo codice.
Il codice sorgente è il migliore manuale che tu possa chiedere.
Un consiglio: impara ad usare i socket, poi usa le classi costruite da altri
Saluti



Però, che rispostona... peccato che oltre a fare polemica non risponde
alla domanda iniziale! Io non ho chiesto come funzionano i socket e come
si programma in rete, ho chiesto semplicemente se fosse possibile
documentarsi in qualche modo diverso dal codice sorgente.
Cmq ho un'altro problema, che sta a monte del saper usare la libreria...
io a casa ho una macchina con SO Linux, sulla quale ho i privilegi di
root, e fin qui non ci sono problemi.
A scuola invece (ed è proprio qui che mi serve la libreria, perchè sto
scrivendo il codice di un client FTP per un laboratorio dell'università)
sono un'utente non root di una rete di macchine con SO Solaris. I
tecnici si sono rifiutati di installarmi la libreria e mi hanno
consigliato di compilarmela in locale e di modificare la variabile
d'ambiente che indica il path delle librerie, includendo il path dove l'ho
salvata.
Il problema è che facendo un "make library" non riesco a linkare i vari
codici oggetto nella tanto agognata libreria...
ecco cosa mi dice il mio linux quando tento di fare la stessa operazione
che faccio a scuola (con gli stessi privilegi = user), cioè "make library"
di pthreadcc, la libreria richiesta da socketcc:
[gabo@localhost pthreadcc]$ make library
=========================================================
  pthreadcc : C++ Class based pthread object libraries.
=========================================================
 Version      : 1.11
 Developed By : CTIE - Monash University
 Platform     : linux
=========================================================
Making Object Files...
Object Files Compiled...
Linking Libary...
        Linking: Object files in obj --> libpthreadcc.so.1.11
/usr/bin/ld: cannot open output file libpthreadcc.so.1.11: Permission denied
collect2: ld returned 1 exit status
make: *** [libpthreadcc.so.1.11] Error 1
[gabo@localhost pthreadcc]$ ld
ld: no input files
[gabo@localhost pthreadcc]$ man ld
[gabo@localhost pthreadcc]$ make
=========================================================
  pthreadcc : C++ Class based pthread object libraries.
=========================================================
 Version      : 1.11
 Developed By : CTIE - Monash University
 Platform     : linux
=========================================================
Making Object Files...
Object Files Compiled...
Linking Libary...
        Linking: Object files in obj --> libpthreadcc.so.1.11
/usr/bin/ld: cannot open output file libpthreadcc.so.1.11: Permission denied
collect2: ld returned 1 exit status
make: *** [libpthreadcc.so.1.11] Error 1
???
Chi ci capisce qualcosa? se vi serve vi posso postare il codice del
Makefile, la riga corrispondente che da problemi.
tnx
gabo

gabo wrote:

La mia non è una rispostona. Se vuoi imparare ad usare i socket in rete è
disponibile una guida ben fatta: bgnet2.pdf. Cercala in internet con
google.
Per quanto riguarda l'altro problema posso modificarti il makefile in modo
tale che tu ottenga la libreria linkata e tu possa usarla da locale.
Se buoi usare classi socket documentate ti consiglio queste due librerie:
socket++, gnu commomc++. cerca sempre con google

 Un consiglio: impara ad usare i socket, poi usa le classi costruite da altri
Yeah!
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
    -<! And the will shall return And again hearts shall burn
         All the horns now will sing Leading you back to the metal winds !>-
                  Lost Horizon - Sworn In The Metal Wind

 
Preferisci leggere la bibbia o fartela raccontare?
sicuramente è più efficiente in termini di tempo farsela raccontare. 
Domandone: il risparmio di tempo è l'unico obiettivo che ti prefiggi?
Che ne dici se impari a leggere ed interpretare il codice scritto da altri?

 tale che tu ottenga la libreria linkata e tu possa usarla da locale.
Saresti molto gentile, ti ricordo che sono in ambiente solaris.
Per quanto riguarda linux, invece, ho risolto tutto, stavo cercando di
scrivere in una direcroty dove non avevo permessi (era di root :).
Dal punto di vista delle prestazioni e della facilità di programmazione
cosa pensi che sia meglio tra socket++ e socketcc? Ho dato un'occhiata al
codice delle socketcc ed effettivamente non sono poi così ostiche!!
tnx
gabo
p.s.
dato che ci sei, non sapresti mica quale variabile di ambiente devo 
modificare con una redhat 9.0 per specificare il path di librerie 
definite dagli utenti?
Mi servirebbe per provare la libreria linkata da locale, come test prima
di farlo a scuola.
Per esempio con solaris devo andare a modificare ld_library_path (che non
riesco a trovare con il mio linux!!).

 /usr/bin/ld: cannot open output file libpthreadcc.so.1.11: Permission denied
...
Se la devi installare in locale per te uno so ti serve a poco.
Per il resto dal messaggio si direbbe un problema di permessi. Guarda nel
makefile dove viene fatto il linking.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
		-<! $>cd /pub	$>more beer !>-

 riesco a trovare con il mio linux!!).
Anche in Linux č LD_LIBRARY_PATH(non č gią impostata, per questo non la
trovi). man ldd/man ld.so su linux, non so su Solaris ma prova lo
stesso.Ciao
-- 
cat <<EOSIGN
Paolo Giarrusso, aka Blaisorblade(togliere solo REMOVEONLYTHIS per rispondere)
Kernel 2.4.20/2.5.63 on an i686; Linux registered user n. 292729
EOSIGN

 Che ne dici se impari a leggere ed interpretare il codice scritto da altri?
Rispostone: la bibbia è scritta bene, socketcc forse pure, il codice in
generale non sempre. Penso che il "non generalizziamo" fosse rivolto a
questo. Vabbé che se la libreria è fatta coi piedi è meglio non usarla, ma
si può avere anche buon codice che però per sua natura(es. kernel) o per
deformazione dell'autore(vedi molto codice Perl) è illeggibile.
P.S.: il Perl mi piace per la sua illeggibilità, ma non per lavorarci(cioè
scriverci un programma) ma divertirmi(cioè per esempio codice offuscato,
vedi il bellissimo camelcode che tra l'altro si può anche riuscire a
comprendere, ed è bello per questo).


 Che ne dici se impari a leggere ed interpretare il codice scritto da altri?
Che puo' essere una buona idea. Hai mai parlato con l'autore di cdrtools?
Lui ti fa passare la voglia.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail** 
-<! Living on Earth may be expensive, but it includes an annual free trip
		around the Sun. !>-

 questo. Vabbé che se la libreria è fatta coi piedi è meglio non usarla, ma
...
Un po' per quello, un po' per il fatto che una frase del genere implica
direttamente "non serve scrivere la documentazione", che e' una stronzata
mostruosa. La necessita' di documentazione di qualita' e' compresa ben poco
in gran parte degli sviluppatori.
Pensa se per usare printf dovessi andare a leggermi i sorgenti della libc.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
	**ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! When you say "I wrote a program that crashed Windows", people just stare
     at you blankly and say "Hey, I got those with the system, *for free*" !>-
                                (By Linus Torvalds)