PDA

Visualizza la versione completa : uhm.. ehm.. socket?


adarkar
31-08-2004, 23:49
perdonate il titolo :zizi:

mkdir fa le dir
mknod fa i nod
mkfifo fa le fifo
perch non hanno fatto anche mksock? :cry:

dunque come si fa a creare un file che sia un socket? e magari come si fa a collegarlo? :fagiano:
:ciauz:

/dev/null
01-09-2004, 00:07
Le socket non sono files...
Per maneggiare le socket devi usare un linguaggio di programmazione... Per creare una socket devi usare un file descriptor... Il Kernel gli assegna il codice si una socket (ma non c'e' bisogno di scrivere sul disco)...
Quindi usi questa socket per connetterti, ricevere connessioni etc...

Le fifo infatti sono pipe con nome: sono come le normali pipe (tubi che puoi aprire tra due programmi: uno scrive e l'altro legge...), ma in piu' scrivono un file sul disco affinche' possano venire letti da piu' programmi avviati in maniera differente, senza il bisogno di dover forkare un programma e collegare i due processi con una pipe...

Se ti interessa usare le socket in C leggiti qua': http://www.lilik.it/~mirko/gapil/gapil.html (soprattutto la seconda sezione)

:ciauz:

adarkar
01-09-2004, 00:09
Originariamente inviato da /dev/null
Le socket non sono files...

:nonono:
invece s :cry: :cry:
cio esistono anche i file di tipo socket.
come le fifo sono pipe con nome.. io vorrei fare un socket con nome e metterlo su disco, ma non ho trovato da nessuna parte come si fa. col file descriptor ok, ci abbiamo fatto 7 esercizi di laboratorio a info2 su sta roba :fighet:

V0D
01-09-2004, 01:19
Io i socket li creo con un file descriptor, ma anche se uso le stesse funzioni che uso per i file non scrive nessun file effettivo. Nei socket c' il socket descriptor che paragonabile al file descriptor per i file. :messner: Ma forse tu intendi un'altra cosa :fagiano:

adarkar
01-09-2004, 02:08
quel ke dite perfetto.. x io sapevo ke dei file reali, quindi con nome, possono essere di tipo socket, solo ke non ho idea di come si creino n di come si colleghino :cry:

dite che non si pu? :cry:

V0D
01-09-2004, 02:13
Se dici che sono di tipo socket IMHO non dici pi di tanto. Cio... io non trovo senso in questo :fagiano:

/dev/null
01-09-2004, 02:17
Ritiro cio' che ho detto prima :stordita:
La mia Bibbia dice che e' possibile creare un file socket:
http://www.lilik.it/~mirko/gapil/gapilsu57.html
pero' non ne parla piu'... Nei capitoli in cui tratta i socket non accenna all'esistenza di files socket in nessun versetto... :fagiano:
Dal Vangelo secondo Simone Piccardi :stordita:



(OK, temo di aver perso la retta via :rollo: :stordita:
Adesso basta discordi profani :D )

V0D
01-09-2004, 02:28
Uhm mi giunge nuova :dott: facendo una brevissima ricerca con Google non ho trovato nulla, se non un accenno negli appunti di informatica libera (che, comunque, riguardavano la rete)... comunque, quel riferimento nel Gapil punta al capitolo 14 che spiega i socket :fagiano:

adarkar
01-09-2004, 03:01
Originariamente inviato da /dev/null

http://www.lilik.it/~mirko/gapil/gapilsu57.html


proprio a ci ke mi riferivo sigh!
dice ke esistono i file di tipo socket, ma poi (ho letto fin'ora) non dice pi assolutamente nulla, parla di mkdir() mknod() ecc. ma di sock non c' nulla, voi non ke ne sapete qcs eh? :zizi:

Ikitt
01-09-2004, 08:48
Originariamente inviato da adarkar

mkdir fa le dir
mknod fa i nod
mkfifo fa le fifo
perch non hanno fatto anche mksock? :cry:
Perche`, presumo, per le necessita` "locali" (senza scomodare la rete) di comunicazione a livello di shell tra processi una
fifo o una pipe e` generalmente sufficiente, mentre per necessita` piu` elaborate e` piu` salutare metter mano al C (o ad altro linguaggio di programamzione), ragion per cui un comando del genere non avrebbe avuto molto senso.


se invece si parla di syscall, il motivo per cui manca mksocket() credo proprio sia di uniformita` (beh, tentativo di) visto che il socket e` un'interfaccia alla fine generica che puo` essere usata sopra la rete come no; ragion per cui si usano le stesse funzioni (socket()/bind()...) cambiando i parametri ove necessario




dunque come si fa a creare un file che sia un socket? e magari come si fa a collegarlo?
Non e` esattamente quello che chiedi, ma potresti usare nc per queste cose.

Loading