Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.
OBJETIVOS:
1.1
1.2
1.3
1.4
2.
RFC 793
Transporte/Servicio orientado a la conexin
Protocolo de transporte de Internet
Transferencia de datos full-dplex
Transporte confiable:
Control:
o de transmisin
o de flujo
o de errores
o de congestin de red
o ...
Provee servicio a la capa de aplicacin
Adaptable a LAN/WAN
Transferencia de un stream de bytes entre sistemas finales (end-to-end)
Puertos:
- En general, una computadora tiene una simple conexin fsica a la red.
o Todos los datos destinados a una computadora en particular llega a travs de
esa conexin.
o Sin embargo, los datos puede ser pretendidos por diferentes aplicaciones
Socket:
- una interface:
o en el host local
o creada por la aplicacin
o controlada por el SO
(una "puerta") dentro de la cual el proceso de aplicacin puede tanto enviar como
recibir mensajes a/desde otro proceso de aplicacin
- Conexiones:
o Normalmente, un servidor corre sobre una computadora especfica y tiene un
socket que est LIGADO al nmero de puerto respectivo.
o El servidor justamente espera, escuchando al socket por un cliente haga una
peticin de conexin.
3.
RECURSOS
Los recursos a utilizar en el trabajo de laboratorio son:
3.1 Java
4.
DESARROLLO DE LA PRACTICA:
En el presente trabajo de laboratorio se visualizar el estado de las conexiones TCP y se
implementar tanto un cliente que enva datos en minscula a un servidor, como un
servidor que recibe datos en minscula desde un cliente y lo devuelve de regreso pero
en maysculas haciendo uso del lenguaje Java.
4.1
4.2
Abrir un socket
Abrir un stream de entrada y un stream de salida para el socket.
Leer desde y escribir hacia el stream conforme al protocolo del servidor.
Cerrar los streams.
Cerrar el socket.
-
APLICACIN CLIENTE:
ClienteTCP.java
/*
*/
import java.io.*;
import java.net.*;
class ClienteTCP {
public static void main(String argv[]) throws Exception
{
// variables
String sentencia;
String sentenciaModificada;
// crear un stream de entrada para la entrada del usuario
BufferedReader inDesdeUsuario =
new BufferedReader(new InputStreamReader(System.in));
// crear socket cliente y conectarse al server
Socket socketCliente = new Socket("id_Servidor", 6789);
// crear un stream de salida ligado al socket
DataOutputStream outAlServidor =
new DataOutputStream(socketCliente.getOutputStream());
// crear un stream de entrada ligado al socket
BufferedReader inDesdeServidor = new BufferedReader(new
InputStreamReader(socketCliente.getInputStream()));
// leer entrada
sentencia = inDesdeUsuario.readLine();
// enviar la entrada al server
outAlServidor.writeBytes(sentencia + '\n');
// leer paquete de rplica del server
sentenciaModificada = inDesdeServidor.readLine();
System.out.println("RESPUESTA DESDE EL SERVER: "
+ sentenciaModificada);
// cerrar
socketCliente.close();
}
}
APLICACIN SERVIDOR:
ServidorTCP.java
/*
*/
import java.io.*;
import java.net.*;
class ServidorTCP {
public static void main(String argv[]) throws Exception
{
String sentenciaCliente;
String sentenciaEnMay;
// crear el socket servidor (TCP) en el puerto 6789
ServerSocket socketServidor = new ServerSocket(6789);
while(true) {
// el socket servidor espera, escuchando por contacto por el cliente,
// si lo acepta un nuevo socket es creado y la conexin es hecha
Socket socketConexion = socketServidor.accept();
// crear un stream de entrada ligado al socket
BufferedReader inDesdeCliente = new BufferedReader(
new InputStreamReader(socketConexion.getInputStream()));
// crear un stream de salida ligado al socket
DataOutputStream outAlCliente =
new DataOutputStream(socketConexion.getOutputStream());
// leer el mensaje desde el socket
sentenciaCliente = inDesdeCliente.readLine();
// construir respuesta
sentenciaEnMay = sentenciaCliente.toUpperCase() + '\n';
// escribir el mensaje al socket
outAlCliente.writeBytes(sentenciaEnMay);
}
}
}
-
javac ClienteTCP.java
javac ServidorTCP.java
-
java ServidorTCP
java ClienteTCP
-
(comentarios)
5. CONTROL:
TRABAJOS DE LABORATORIO.
5.1
5.2
5.3