Proyecto Teleinformática: Maestros-Esclavos

Páginas: 5 (1067 palabras) Publicado: 19 de noviembre de 2012
Reporte de Proyecto Final
Maestro-Esclavos-AP

INTEGRANTES: Rodríguez Álvaro D.
Villarroel V. Paola A.
MATERIA: Teleinformática
DOCENTE: Alex Villazón
FECHA: 28/06/12

Contenido:

1. Introducción 3
2. Sobre el Protocolo y el Algoritmo 3
3. Códigos Java 3
3.1. Maestro 3
3.2 Esclavos 5
4. Compilación y Ejemplo 8

1. Introducción
El Proyecto Maestro-Esclavos-AP trata deuna generación random de números que se le envían a un Maestro, así como el tamaño total de la cadena de números. También se le envía el número de esclavos a generar. El Maestro llama a los esclavos y genera un número de orden para cada esclavo.

2. Sobre el Protocolo y el Algoritmo
Bueno para explicar mejor el Protocolo, presentamos este gráfico:
Maestro

N Esclavos….…….……….

El protocolo consta en: primero el Maestro recibe 3 parámetros: <puerto> <cantidad de esclavos> <tamaño de cadena>
Después divide esta cadena (equitativamente) y crea sus esclavos, asignándoles un numero de ordenamiento (+1), para finalmente enviarles estaspartes del mensaje inicial. ¿Cómo crea los esclavos?
El Maestro tiene un ServerSocket, para escuchar y crea sockets al recibir la cantidad de esclavos.
Los esclavos se comportan como servidores y reciben este mensaje para ordenarlo y comparar con sus colegas (derecha e izquierda), para cambiar o mantener su número. Los esclavos tienen 2 sockets ServerSocket y Socket, ya que realizan unacomunicación de ida y vuelta entre ellos.

3. Códigos Java
3.1. Maestro
import java.io.*;
import java.net.*;
import java.util.Random;

public class Master {
public static void main(String args[]) throws IOException{
if (args.length != 3 ) {
System.out.println("<SocketInicial><#Esclavos><TamañoArreglo>");
System.exit(-1);
}int port = Integer.valueOf(args[0]).intValue();
int numberOfSlaves = Integer.valueOf(args[1]).intValue();
int length = Integer.valueOf(args[2]).intValue();
int initialSlavePort = port + numberOfSlaves;
String slaveString;
Socket[] connectedSockets = new Socket[numberOfSlaves];
int[] numbers = new int[length];
Socket connectedSocket =null;
System.out.println("Iniciando Ejecucion del Socket");
ServerSocket server = new ServerSocket(port);
int k = 0;
for (int i= 1; i <= numberOfSlaves; i++) {
System.out.println("Esperando el esclavo #"+i);
Random r = new Random();
for (int j= 0; j < numbers.length; j++) {
numbers[j] = r.nextInt(100);}
WriteConfigurationfile(i,initialSlavePort+1,numbers,numberOfSlaves,length);
connectedSocket = server.accept();
connectedSockets[k] = connectedSocket;
initialSlavePort = initialSlavePort +1 ;
k = k + 1;
BufferedReader inFromSlave = new BufferedReader(new InputStreamReader(connectedSocket.getInputStream()));while((slaveString = inFromSlave.readLine()) != null){
System.out.println("entra");
break;
}
}
for (int i= 0; i < connectedSockets.length; i++) {
DataOutputStream outToSlave= new DataOutputStream(connectedSockets[i].getOutputStream());
outToSlave.writeBytes("start"+'\n');
}while(true){
}
}
public static void WriteConfigurationfile(int number, int socket, int[] numbers,int numberOfSlaves, int eslaveArrayLength) throws IOException{
BufferedWriter fileWriter = new BufferedWriter(new FileWriter("ConfigurationFile.txt"));
String numeros = "";
for (int i= 0; i < numbers.length ; i++) {
numeros = numeros +...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Flip Flop Maestro Esclavo
  • Crear maestro y esclavo en mysql
  • Maestro-Esclavo con MySQL
  • como configurar un hdd de maestro o esclavo
  • MAESTRO ESCLAVO
  • proyecto maestro 100 puntos
  • PROYECTO MAESTRA DE APOYO
  • Proyecto Dia Del Maestro

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS