linux user group brescia

immagine del castello

Archivio della mailing list

sockets

Luca Giuzzi giuzzi a dmf.bs.unicatt.it
Mer 6 Dic 2000 22:10:41 UTC
Per chi non e' contento della spiegazione 
 "typedef struct sock unix_socket;"
I sockets sono un meccanismo di comunicazione fra piu' processi, sia sul
 medesimo sistema sia su macchine diverse (attraverso protocolli di
 rete quali TCP/IP).
Cito da varie man pages:
 `i socket funzionano come terminali di comunicazione [...]
  una coppia di sockets costituisce un canale di comunicazione bidirezionale
  che consente a processi diversi di scambiare dati localmente e attraverso
  la rete'

Per ogni socket esiste un `dominio di comunicazione' a cui fa riferimento:
 questo comprende
 1) la famiglia di protocolli da usare
 2) le regole per manipolare e interpretare i nomi
 3) una famiglia di indirizzi 

Un unix domain socket e' un socket che appartiene al dominio AF_UNIX
 (AF=Address Family). Esso e' locale e il suo nome e' accessibile con
 pathnames UNIX. Un'altra address family e', ad esempio AF_INET.

Venendo al problema del database: due considerazioni
 1) un socket esiste fintanto che l'applicazione che l'ha creato e' in
  esecuzione... se il backend del database muore, allora il socket cessa
  di esistere.
 2) un socket ha un set di permissions associato... potresti non essere
   autorizzato a connetterti...
 3) NON e' possibile usare sockets AF_UNIX da remoto! La famiglia solitamente
   e' AF_INET o af_inet6, af_spx, af_ipx, af_at, af_dn, af_packet, af_x25,
   af_econet, af_atm, etc. etc. sicuramente NON AF_UNIX...

Ciao,
 luca



Maggiori informazioni sulla lista Lug