Ajuda com Sockets

14 respostas
C

Olá pessoal, eu peguei um exemplo aqui no guj de cliente e servidor usando sockets http://www.guj.com.br/articles/126
Consegui fazer ele rodar na mesma máquina tranquilo. Mas eu gostaria de saber como fazer para rodar ele entre um computador de mesa e um notebook.
Eu tenho um pc de mesa com ubuntu 10.10, um roteador wireless e um notebook também com ubuntu 10.10.
Tentei simplesmente rodar o programa servidor no pc de mesa e depois rodar o programa cliente com o ip do meu notebook mas não funcionou.
Desculpem minha ignorância no assunto, de repente alguém vai ler isso e pensar: “Que cara mais burro não consegue fazer isso que é tão fácil hahahahahahahahaha” mas eu nunca lidei com redes nem sockets, portanto não faço a mínima idéia de como fazer isso.
Obrigado.

14 Respostas

E

Cowboy From Hell:
Olá pessoal, eu peguei um exemplo aqui no guj de cliente e servidor usando sockets http://www.guj.com.br/articles/126
Consegui fazer ele rodar na mesma máquina tranquilo. Mas eu gostaria de saber como fazer para rodar ele entre um computador de mesa e um notebook.
Eu tenho um pc de mesa com ubuntu 10.10, um roteador wireless e um notebook também com ubuntu 10.10.
Tentei simplesmente rodar o programa servidor no pc de mesa e depois rodar o programa cliente com o ip do meu notebook mas não funcionou.
Desculpem minha ignorância no assunto, de repente alguém vai ler isso e pensar: “Que cara mais burro não consegue fazer isso que é tão fácil hahahahahahahahaha” mas eu nunca lidei com redes nem sockets, portanto não faço a mínima idéia de como fazer isso.
Obrigado.

Uma coisa chata que ocorre com roteadores wireless é que alguns deles, por default, não permitem a comunicação entre dois computadores que estão na mesma rede, a menos que você habilite essa comunicação. Você já verificou a página de configuração do seu roteador?

C

Como eu faço para habilitar essa comunicação? Meu roteador é um TP-Link TL-WR340GC

E

Boa pergunta, é preciso olhar a página de configuração do roteador e ver se há alguma opção nesse sentido. Não tenho um TP-Link em casa, só um Netgear.

C

Eu entrei nas configurações do roteador mas não achei isso, pelo menos não explicitamente, se alguém souber como posso fazer essa comunicação por favor me ajudem pois vou precisar disso para fazer um trabalho da faculdade.
Obrigado.

E

Cowboy From Hell:
Eu entrei nas configurações do roteador mas não achei isso, pelo menos não explicitamente, se alguém souber como posso fazer essa comunicação por favor me ajudem pois vou precisar disso para fazer um trabalho da faculdade.
Obrigado.

Se isso não está explícito, o mais provável é que não haja essa limitação.

De qualquer maneira, você sabe qual é o endereço IP do seu servidor de mesa, quando ligado ao roteador? Deve ser algo como “192.168.1.3” ou coisa parecida. É questão de você olhar a saída do comando “netstat”

C

Sim, eu sei o endereço IP do meu computador de mesa. Com aqueles arquivos do tutorial que eu peguei não era apenas para rodar o arquivo Servidor.java no pc de mesa e o arquivo Cliente.java no notebook substituindo o que está em negrito na linha abixo sem as apas pelo IP do meu notebook que teoricamente executaria sem erros?
s = new Socket(“127.0.0.1”,7000);

aechiara

Cowboy From Hell:
Sim, eu sei o endereço IP do meu computador de mesa. Com aqueles arquivos do tutorial que eu peguei não era apenas para rodar o arquivo Servidor.java no pc de mesa e o arquivo Cliente.java no notebook substituindo o que está em negrito na linha abixo sem as apas pelo IP do meu notebook que teoricamente executaria sem erros?
s = new Socket(“127.0.0.1”,7000);

antes de mais nada, você consegue dar ping na máquina que é o “servidor”
se consegue, tenta dar um telnet na porta (é TCP pelo jeito né)

se o ping funcionar e o telnet funcionar, então é algum problema no programa
se ping ou telnet não funcionarem, é problema de rede

outra coisa, facilitaria para vc passar IP e porta via argumentos para não ter que ficar compilando toda vez que mudar de máquina

C

Ping eu consigo fazer, e telnet nunca usei, o que é telnet? Para que serve? Como executo?

E

127.0.0.1 é o endereço conhecido como “localhost”, e é relacionado a uma interface virtual de rede que é chamada de “loopback” e é usada quando um programa precisa conectar a outro que está na mesma máquina.

Para uma máquina falar com outra, ela não pode usar esse endereço “127.0.0.1” e sim um outro. Na sua rede, deve ser algo parecido com “192.168.1.2” ou coisa parecida.

E

A propósito, você já viu uma camiseta como esta?

Essa é uma forma de você aprender que esse endereço (127.0.0.1) é especial e não deve ser usado para conectar a uma outra máquina.

C

Mas eu mudei o endereço 127.0.0.1 pelo endereço IP do meu notebook. Não é isso que eu deveria fazer?

aechiara

vc deve colocar o endereço IP da máquina que está rodando o servidor

C

Aeeeeeee \o/ agora sim funcionou, muito obrigado pelas dicas companheiros. É brabo não saber nada sobre essas coisas e ficar encomodando no forum.
Um abraço.

rmendes08

Cowboy From Hell:
Aeeeeeee \o/ agora sim funcionou, muito obrigado pelas dicas companheiros. É brabo não saber nada sobre essas coisas e ficar encomodando no forum.
Um abraço.

Se você está na faculdade, não deixe de cursar uma disciplina de redes. Se não está, compre hoje mesmo um bom livro e meta as caras. Tem muita gente que sofre com desenvolvimento Web porque não tem noções básicas de HTTP ou TCP/IP.

Criado 29 de março de 2012
Ultima resposta 30 de mar. de 2012
Respostas 14
Participantes 4