Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> sistemi >> Unix >> .

Unix Domain Socket Tutorial

Unix fornisce una tecnologia nota come socket di dominio per facilitare la comunicazione tra i diversi processi e persino diverse applicazioni. Una delle stranezze di un socket di dominio Unix è che sembra di applicazioni per essere un file. Tuttavia, la presa non viene mai memorizzato sul disco rigido e il suo posto nel sistema di file viene semplicemente utilizzato come marcatore . I dati possono essere scritti e letti da un socket di dominio Unix dalla maggior parte dei principali linguaggi di programmazione che le prese di supporto . Rubino rende il processo particolarmente semplice , che permette i concetti da dimostrare senza essere oscurato da tutta la complessità della presa di programmazione in C + + . Istruzioni
1

aprire due nuovi documenti con il vostro editor di testo preferito . Per mantenere le cose a posto , andare avanti e salvare il primo con il nome di " udsServer.rb " e l'altro con il nome di " udsClient.rb . " Come si potrebbe sospettare , il server gestirà la creazione e la scrittura per la presa e il client si collega alla presa e di ricevere un messaggio da parte del primo
2

Incolla il seguente in usdServer.rb . :

# /usr /bin /ruby

richiedono ' presa '

s = UNIXServer.open ( " /mytestsocket " ) per client

= s . accettare

client.puts " Ciao , il mio caro amico . "

s.close

File.unlink ( " /mytestsocket " ) per

Il codice esegue le seguenti operazioni : in primo luogo , dice il sistema operativo Unix che si tratta di uno script Ruby . Potrebbe essere necessario modificare questa linea se il vostro sistema operativo Unix installato Rubino in un'altra directory. È possibile trovare la directory digitando " che Ruby" in un terminale .

Avanti , viene caricata la libreria socket . Poi , UnixServer crea un socket nel file " mytestsocket . " Questo file sarà effettivamente visibile nel vostro terminale BASH , se si cura di guardare , anche se non sarà in grado di leggere e scrivere da esso. Si attende quindi un altro script per la connessione e , quando lo fa, manda un messaggio amichevole . Infine , chiude il socket e " separa il " presa dal file system .

Questo è tutto per il server , ora è il momento di scrivere il client .
3

Incolla il seguente nel documento udsClient.rb :

# /usr /bin /ruby

require ' presa '

s = UNIXSocket.open ( " /mytestsocket " ) per

mette s.readline

s.close

Ancora una volta , la prima riga dice a Unix che cosa fare con il tuo codice e la seconda riga carica la libreria socket. Poi , una presa si apre allo stesso " file" che il codice server utilizza . Il messaggio viene letto , e il collegamento con la presa chiusa
4

Aprire il terminale e digitare quanto segue : .

Rubino udsServer.rb

Non succederà nulla , perché il server è attualmente seduto , in attesa che il programma client per la connessione . Assicurarsi di lasciare questo terminale aperto .
5

aprire un'altra copia del vostro terminale e di organizzare la finestra in modo da poter vedere entrambi i terminali contemporaneamente. Digitare quanto segue :

rubino udsClient.rb

Si dovrebbe vedere immediatamente l'uscita finestra del server e la finestra del client visualizzano il messaggio amichevole inviatale dal server . Se cercate il file di socket, che ora sarà andato.

 

sistemi © www.354353.com