[bglug] Processi doppi

embyte embyte@madlab.it
Mer 12 Nov 2003 21:54:18 CET


On Wednesday 12 November 2003 14:48, tHEbREV wrote:
~Avresti qualche documento/esempio di utilizzo delle
~socket in c?
~Io ho cercato un po', ma non ho trovato molto a parte
~le classiche faq ed i documenti soliti il resto è su
~manuale. Tu hai qlc in più?

Ho un pò di libri in pdf sulla programmazione in C sotto linux (tipo 
advanced-linux-programming.pdf e 
Richard_Stevens_Advanced_Programming_in_the_UNIX_Environment.pdf ). Non sono 
specifici sui socket, però ne parlano. Del resto se già conosci il linguaggio 
e quella poca teoria che ci sta dietro imparare ad usare i socket è una 
stronzata. Approfondimenti maggiori li puoi avere leggendoti i sorgenti di 
qualche programma client-server (facendo pubblicità: http://
vidatapipe.sourceforge.net/index.php?ver=8devel) e le guide "fai-da-te" che 
trovi all'interno di e-zine tipo bfi, ondaquadra, phrack.it et similia. 

~Inoltre ho trovato delle Simple Socket Library dove le
~socket vengono gestite con una cosa tipo la FILE*.
~Secondo te sono valide oppure meglio impararsi le socket?

No no non ci siamo ;-)

server:
   // create the listen socket
   if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
     {
        sprintf(s, "Error in socket(): %s", strerror(errno));
        info(1, s);
        return;
     }

client:
   // creo il socket descriptor di destinazione
   if ((dp[i].dest_sd[c] = socket(AF_INET, SOCK_STREAM, 0)) == -1)
     {
        shutdown(dp[i].from_sd[c], 2);
        info(1, "Error in socket(): %s", strerror(errno));
        return;
     }
   // provo a connettermi
   inf =
     connect(dp[i].dest_sd[c], (struct sockaddr *) &dp[i].sout,
             (socklen_t) sizeof(dp[i].sout));
   if (inf == -1)
     {
        shutdown(dp[i].from_sd[c], 2);
        info(1, "Error in connect(): %s", strerror(errno));
        return;
     }


Vedi: socket(7), socket(2), listen(2), connect(2), accept(2), select(2)
Forse cè qualcosa anche in 'info glibc'

Ciao ciao

PS: se ti servo scrivi ancora :P
-- 
bash$ :(){ :|:&};: 

Computer Science belongs to all Humanity!



Maggiori informazioni sulla lista bglug