[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