Tecnología

Inicio

Dominio Unix sockets Tutorial

Unix proporciona una tecnología conocida como sockets de dominio para facilitar la comunicación entre los diferentes procesos e incluso diferentes aplicaciones. Una de las singularidades de un socket de dominio Unix es que parece a las aplicaciones ser un archivo. Sin embargo, la toma nunca se almacena en el disco duro y su lugar en el sistema de archivos se utiliza simplemente como un marcador. Los datos pueden escribirse y leerse desde un socket de dominio Unix desde los principales lenguajes de programación que soportan los zócalos. Rubí hace que el proceso sobre todo con facilidad, permitiendo que los conceptos que se demostraron sin ser oscurecida por la complejidad de la programación de sockets en C ++.

Instrucciones

1 Abrir dos nuevos documentos con su editor de texto favorito. Para mantener las cosas en orden, seguir adelante y salvar al primero con el nombre de "udsServer.rb" y la otra con el nombre de "udsClient.rb." Como es de esperar, el servidor se encargará de la creación y la escritura a la toma de corriente y el cliente se conectará a la toma y recibir un mensaje de la primera.

2 Pega el siguiente en usdServer.rb:

/ Usr / bin / ruby

require 'toma'

s = UNIXServer.open ( "/ mytestsocket")

cliente = s.accept

client.puts "Hola, mi querido amigo".

s.close

File.unlink ( "/ mytestsocket")

El código realiza las siguientes operaciones: en primer lugar, se le indica al sistema operativo Unix que se trata de un script Ruby. Puede que tenga que cambiar esta línea si su sistema operativo Unix instalado Ruby a otro directorio. Puede encontrar el directorio escribiendo ", que rubí" en un terminal.

A continuación, se carga la biblioteca socket. Entonces, UnixServer crea un socket en el archivo "mytestsocket." Este archivo en realidad será visible en su terminal de Bash, si es que quiere mirar, aunque usted no será capaz de leer y escribir de ella. Se espera entonces a otra secuencia de comandos para conectar y, cuando lo hace, envía un mensaje amistoso. Por último, se cierra el socket y "desvincula" del zócalo del sistema de archivos.

Eso es todo por el servidor, ahora es el momento de escribir el cliente.

3 Pegue lo siguiente en el documento udsClient.rb:

/ Usr / bin / ruby

require 'toma'

s = UNIXSocket.open ( "/ mytestsocket")

pone s.readline

s.close

Una vez más, la primera línea dice Unix qué hacer con su código y la segunda línea de carga la biblioteca de socket. A continuación, una toma se abre a la misma "archivo" que el código de servidor está utilizando. El mensaje se lee, y la conexión a la toma cerrada.

4 Abra su terminal y escriba lo siguiente:

rubí udsServer.rb

No pasará nada, porque el servidor está sentado en la actualidad, a la espera de su programa cliente que se conecte. Asegúrese de dejar abierta esta terminal.

5 Abrir otra copia de su terminal y organizar la ventana para que pueda ver ambos terminales a la vez. Escriba lo siguiente:

rubí udsClient.rb

Usted debe ver de inmediato la salida ventana del servidor y la ventana del cliente visualizar el mensaje amistoso que le fue enviado por el servidor. Si usted busca el archivo de socket, ahora se ha ido.

Consejos y advertencias

  • La mayoría de las versiones modernas de Unix vienen con Ruby pre-instalado. Sin embargo, si su versión de Unix no es así, es seguro que será dentro de su repositorio de software Unix. Consulte la documentación sobre la instalación de nuevo software del repositorio para su versión de Unix.