El usar un socket TCP y transmitir los datos en ASCII nos permite utilizar el programa
Telnet como cliente. He aquí una interacción ejemplo:
usuario$ telnet localhost 6789
Trying 127.0.0.1...
Connected to localhost.
Escape character is ’^]’.
shared_value = 0. Introduzca nuevo valor ... 3
shared_value = 3. Introduzca nuevo valor ... -1
shared_value = 3. Introduzca nuevo valor ... -2
Connection closed by foreign host.
Como puede verse, en cada interacción el cliente obtiene el valor actual de la variable
compartida shared_value y puede especificar un valor distinto. En función del valor
especificado podemos:
- Si el valor introducido es menor o igual que -2, el cliente desea cerrar la
conexión con el servidor.
- Si el valor introducido es -1, el cliente desea conocer el valor actual de la
variable compartida (sin alterar su valor). Téngase en cuenta que desde que se
recibe el último valor de la variable compartida hasta que otra es introducida,
otro cliente ha podido modificar dicho valor. Por tanto, especificar el mismo
valor que el actual no valdría como consulta.
- Si el valor introducido es mayor o igual que 0, el cliente modifica el valor de
la variable compartida.
___________________________________________
Taller 11.3: Escriba una versión del servidor usando el lenguaje de
programación Java. Compruebe que su versión funciona correctamente.
________________________________________________________________________________________________
- Presente el código desarrollado y un ejemplo de interacción.
- Usando Wireshark, capture una interacción entre dos clientes y un servidor
cuando todos se ejecutan dentro del mismo host. ¿Cómo distingue el servidor
a los dos clientes?