Unix biedt een techniek die bekend staat als domain sockets om de communicatie tussen de verschillende processen en zelfs verschillende toepassingen te vergemakkelijken . Een van de eigenaardigheden van een Unix domein socket is dat het lijkt toepassingen een bestand . Echter , is de aansluiting nooit op de harde schijf opgeslagen en zijn plaats in het bestandssysteem wordt gewoon gebruikt als een marker . Data kan worden geschreven en gelezen van een Unix domein socket van de meeste grote programmeertalen die ondersteuning sockets . Ruby maakt de werkwijze bijzonder eenvoudig , zodat de concepten worden aangetoond zonder gemaskeerd door de complexiteit van socket programmeren in C + + . Instructies Open twee nieuwe documenten 1 met uw favoriete tekstverwerker . Om dingen recht te houden , ga je gang en sla de eerste met de naam " udsServer.rb " en de andere met de naam " udsClient.rb . " Zoals je zou vermoeden , zal de server de creatie verwerken en schrijven naar de socket en de klant zal aansluiten op het stopcontact en ontvang een bericht van de eerste kopen van 2 Plak volgende in usdServer.rb . : # /usr /bin /ruby nodig ' socket ' s = UNIXServer.open ( " /mytestsocket " ) cliënt = s . accepteren client.puts " Hallo , mijn beste vriend . " s.close File.unlink ( " /mytestsocket " ) op Twitter De code voert de volgende bewerkingen : eerst , het vertelt je Unix -besturingssysteem dat dit een Ruby script . Het kan nodig zijn om deze regel te veranderen als je Unix OS geïnstalleerd Ruby naar een andere directory . U kunt de map vinden door te typen " die robijn " in een terminal . Vervolgens wordt de socket library geladen . Vervolgens UnixServer creëert een aansluiting in het bestand " mytestsocket . " Dit bestand ook daadwerkelijk zichtbaar zijn in uw BASH terminal , als je de zorg te kijken , maar je zult niet in staat om te lezen en schrijven van het. Het wacht vervolgens op een ander script aan te sluiten en , als dat zo is , stuurt een vriendelijke boodschap . Ten slotte sluit het stopcontact en " ontkoppelt " het stopcontact van het bestandssysteem . Dat is het voor de server , nu is het tijd om de client te schrijven . 3 Plak het volgende in het udsClient.rb document : # /usr /bin /ruby nodig ' socket ' s = UNIXSocket.open ( " /mytestsocket " ) op zet s.readline s.close Nogmaals , de eerste regel vertelt Unix wat te doen met uw code en de tweede regel laadt de socket library . Vervolgens wordt een socket geopend om dezelfde " file" dat de server code gebruikt . Het bericht wordt gelezen , en de aansluiting op de socket gesloten 4 Open je terminal en typ het volgende : . Ruby udsServer.rb Niets zal gebeuren , omdat de server momenteel zit , wachtend op uw client-programma aan te sluiten . Zorg ervoor dat deze terminal open te laten . 5 Open een kopie van uw terminal en schik het raam , zodat u kunt beide terminals tegelijk te zien . Typ het volgende : ruby udsClient.rb U dient meteen de server raam afrit en het venster cliënt weer de vriendelijke bericht door de server te sturen . Als je kijkt naar de socket -bestand , wordt het nu weg .
|