Problemas com fazer um método criaLink entre host e roteadores!

2 respostas
A

Oi pessoal, :blackp:
Olha soh, eu tenho que fazer um código que se conecte um Host(ha) com um outro Host(hb) através de 2 Roteadores(r1 e r2), assim como na net. até um cero ponto tudo bem, mas não consigui entende como faço o método “criaLink”. Já tenho quase udo pronto, inclusive a classe com o método Main:

public class TestNet

{

public static void Main (String[] args)

{

[color=violet]//cria roteadores, onde 2 é o número de interfaces (ou portas) que o roteador tem, e “r1” é o seu

//nome[/color]

Roteador r1 = new Roteador(2, r1);

Roteador r2 = new Roteador(2, r2);

[color=violet] //cria Hosts, onde “ha” é o nome do host[/color]

Host ha = new Host (ha);

Host hb = new Host (hb);

[color=violet] //cria enlaces

//cria Hosts, onde “ha” é o nome do host e 1000 é a largura de banda do enlace (1000 Mbit/s)[/color][color=violet] [/color]

Enlace ea1 = new Enlace(1000, ea1);

Enlace e12 = new Enlace(1000,e12);

Enlace e2b = new Enlace(1000,e2b);

[color=violet] //Cria as conexões físicas para cada roteador. A primeira linha adiciona o enlace ea1, que

//interliga roteador r1 ao host ha (vide figura) ao roteador r1. A segunda linha adiciona o outro

//enlace (e12) ao mesmo roteador – vide figura.[/color]

r1.criaLink1(ea1,r1,ha);

r1.criaLink2(e12,r1, r2);

r2.criaLink1(e12,r2,r1);

r2.criaLink2(e2b,r2,hb);

[color=violet] //Cria conexões para os hosts, seguindo a mesma semântica dos Links para os enlaces[/color]

ha.criaLink1(ea1, ha, r1);

hb.criaLink1(e2b, hb, r2);

[color=violet] /**

* Método transferir da classe Roteador ( o mais importante):

* Verifica se o roteador r1 consegue entregar dados até hb(ou qualquer host/roteador). Essa avaliação

* pode ter três resultados:

* 1 – o roteador consegue entregar, utilizando seus próprios links, diretamente (por exemplo, o o

* roteador r1 consegue entregar dados ao host há e ao roteador r2 diretamente)

* 2 – o roteador consegue entregar, porém indiretamente, utilizando outro roteador (ex: o roteador

* r1 consegue entregar dados ao host hb via o roteador r2

* 3 – o roteador não consegue entregar (por exemplo: r1 não consegue entregar dados para o host “hx”

* */[/color]

String transf = r1.transferir(hb);

System.out.println(transf);

}

}

Daí na classe Roteador eu tenho que faze um array, mas não entendi bem. Será que eu peciso fazer uma classe “Conexao”???

Classe Roteador:

public class Roteador

{

private String nome;

private int numeroInterfaces;

private String transf;

private String arrayConexao[];

private String arrayChegada[];
public Roteador(int numeroInterfaces, String nome )
{
    this.numeroInterfaces = numeroInterfaces;
    this.nome = nome;
}
public Host setHost(int numeroInterfaces)
{
    this.numeroInterfaces = numeroInterfaces;
    numeroInterfaces = 0;
    if(numeroInterfaces == 1)
    {
        
    }
public void criaLink()
{
    arrayConexao[];
    arrayChegada[];
}
public void transferir(String transf)
{
    this.transf = transf;
}

}
Sei que ela está errada em alguns pontos!

Por favor, me ajudem!!! :tiros: :viva:

2 Respostas

S

Ana se eu entendi bem, me parece que tem algo errado na sua lógica.

Pensa o seguinte, na net voce quer conectar o UOL então voce digita www.uol.com.br e vcê vai do seu pc (ha) até o servidor do uol (hb) sem interessar quantos roteadores você passou, pois o seu “ha” sabe chegar até o “hb” através dos protocolos.

Então para mim, se você quer fazer um programa que conecta os dois hosts não interessa saber o que tem no meio, desde que “ha” saiba o IP do “hb” e esse seja um ip único na sua rede ele vai saber chegar. Não precisa ir ligando roteador a roteador até chegar no hb.

J

Gostaria de ver o resposta deste exercicio.

Axei ele muito interesante, Ana poderias postar o resto?

Criado 15 de junho de 2008
Ultima resposta 26 de mai. de 2009
Respostas 2
Participantes 3