Unix bietet eine Technologie als Domain-Sockets bekannt , um die Kommunikation zwischen den verschiedenen Prozessen und sogar verschiedene Anwendungen zu erleichtern. Eine der Merkwürdigkeiten eines Unix -Domain-Socket ist, dass es um Anwendungen scheint eine Datei sein. Jedoch ist die Buchse nicht auf der Festplatte gespeichert ist und die Stelle in der Datei -System wird einfach als ein Marker verwendet wird . Daten können geschrieben und gelesen werden von einem Unix -Domain-Socket von den meisten wichtigen Programmiersprachen , dass die Unterstützung Steckdosen . Rubin macht den Prozess besonders einfach , so dass die Konzepte , ohne durch die ganze Komplexität der Socket-Programmierung in C verdeckt nachgewiesen werden + +. Anleitung
1
öffnen zwei neue Dokumente mit Ihrem bevorzugten Texteditor. Um die Dinge gerade, gehen Sie vor und speichern Sie das erste mit dem Namen " udsServer.rb " und der andere mit dem Namen " udsClient.rb . " Wie Sie vielleicht vermuten , wird der Server übernehmen die Erstellung und schriftlich an die Steckdose und der Kunde wird an die Steckdose anschließen und erhalten eine Nachricht von der ersten
2
Fügen Sie den folgenden in usdServer.rb . :
# /usr /bin /ruby
require 'socket '
s = UNIXServer.open ("/mytestsocket " )
client = s . akzeptieren
client.puts "Hallo , mein lieber Freund . "
S.CLOSE
File.unlink ("/mytestsocket " )
Der Code führt die folgenden Operationen : erstens , es sagt Ihr Unix-Betriebssystem , dass dies ein Ruby-Skript ist . Möglicherweise müssen Sie diese Zeile ändern, wenn Ihr Unix -Betriebssystem installiert Rubin in ein anderes Verzeichnis . Sie können das Verzeichnis durch Eingabe in ein Terminal ", die Ruby" .
Weiter finden , wird die Socket-Bibliothek geladen. Anschließend erstellt Unix-Server einen Socket in der Datei " mytestsocket . " Diese Datei wird tatsächlich sichtbar in Ihrem BASH -Terminal, wenn Sie schauen zu kümmern, wenn Sie nicht in der Lage zu lesen und zu schreiben, von ihm. Es wartet dann auf einem anderen Skript zu verbinden und , wenn dies der Fall ist, sendet eine freundliche Nachricht . Schließlich schließt er die Steckdose und " hebt die Verknüpfung " die Fassung aus dem Dateisystem .
Das ist es für den Server , jetzt ist es Zeit , um den Client zu schreiben.
3 < p > Fügen Sie den folgenden in den udsClient.rb Dokuments:
# /usr /bin /ruby
require 'socket '
s = UNIXSocket.open ("/mytestsocket " )
s.readline
S.CLOSE
setzt Wieder erzählt die erste Zeile Unix , was mit Ihrem Code und der zweiten Zeile lädt das Socket-Bibliothek zu tun. Dann wird ein Socket an den gleichen "file" , dass der Server -Code wird mit Hilfe geöffnet . Die Nachricht wird gelesen und die Verbindung zum Socket geschlossen
4
Öffnen Sie das Terminal und geben Sie die folgenden Schritte aus: .
Ruby udsServer.rb
Nichts wird passieren , weil der Server gerade sitzen , warten auf Ihre Client-Programm zu verbinden . Achten Sie darauf, lassen Sie dieses Terminal geöffnet .
5
Öffnen Sie eine weitere Kopie von Ihrem Terminal und ordnen Sie die Fenster , so dass Sie beide Anschlüsse auf einmal sehen können . Geben Sie den folgenden :
ruby udsClient.rb
Sie sollten sofort sehen das Server-Fenster verlassen und das Client-Fenster zeigt die freundliche Nachricht , die ihm von dem Server. Wenn Sie für die Socket-Datei aussehen , wird es jetzt weg. Werden