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 < p > 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.