• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

miudo23

Sockets em Java

17 mensagens neste tópico

boas,

algem conhece algm tutorial para aprender a mexer em sockets e assim???

tenho k fazer uma firewall em telnet e como tal vou precisar de implementar um servidor....etc...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok vouver...

eu sei k info e o k nao falta.....era so paraver s algm conhecia um bom tutorial... ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, ainda relacionado com o servidor em java :-[

//declaro as variaveis
ServerSocket serv=null;
Socket s=null;
DataInputStream entrada=null;
DataOutputStream saida=null;

try{
		             
serv = new ServerSocket(23);        
s = serv.accept();
		             
entrada = new DataInputStream(s.getInputStream());
saida = new DataOutputStream(s.getOutputStream());

saida.writeUTF("Insira o login: ");
        login=entrada.readUTF();

saida.writeUTF("Insira a Password: ");
pass=entrada.readUTF();



if(login.compareToIgnoreCase("admin")==0 && pass.compareToIgnoreCase("teste")==0){

			saida.writeUTF("Valido");

}else{

			saida.writeUTF("Invalido");
        }

}catch(IOException e){
		         

		   System.out.println("Algum problema ocorreu para criar ou receber o socket.");
		         
		   }finally{
		             
		       try{
		                 
		       
		         s.close();
		                 
		       
		         serv.close();
		                 
		         }catch(IOException e){
		  }
}
  }			   
}

neste momento tenho o meu servidor assim.....mas queria usar o telnet do windows para comunicar com o servidor.

mas ao fazer open "ip" no telnet preciso de lhe dar um ip....e eu nao sei fazer isso em java....em pthon bastava fazer um servidor.bind('127.0.0.1',23) sendo 127.0.0.1 o ip do servidor e 23 a porta usada pelo telnet do windows.

algm me pode ajudar???

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

magician:

nao consigo usar o metodo bind().....podias dar-me um exemplo sff....

cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que é isto que queres

import java.net.InetSocketAddress;
import java.net.ServerSocket;


public class ServerBlind {

public static void main (String args []){
	InetSocketAddress addr = new InetSocketAddress("127.0.0.1", 154);
	try{
		ServerSocket server = new ServerSocket();
                        Socket s;
		server.bind(addr);
		s = server.accept();
	}
	catch(Exception e){
		e.printStackTrace();
	}
}
}

O resto do processo é idêntico ao ServerSocket normal. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

magician, desculpa se estou a ser chato..... :wallbash:

ja criei o servidor bem como todas as classes para o gerir....mas agr estoiu com um problema....

ponho o servidor a correr, e abro a telnet do wimdows, e ligo-me ao servidor...ate aqui tudo bem... o problema é a tentar escrever na telnet e a receber os dados inseridos na telnet...nomeadamente username e pass....bem como a conversasao k ira decorres apos a autenticacao...

estou a criar um canal de entrada e outtro de saida:

DataInputStream entrada=null;

DataOutputStream saida=null;

depois estou a escrever no telnet

saida.writeUTF("Username: ");

username=entrada.readUTF();

e é aqui que me da erro....e nao consigo avancar com isto...alguma sugestao???

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se queres que o Telnet faça alguma coisa tens de criar o protocolo de conversação neste caso o protocolo TELNET http://tools.ietf.org/html/rfc854 tambem podes usar HTTP se não me engano também é suportado pela telnet.

De uma forma ou e outra tens de criar um dialogo que a telnet entenda não podes apenas mandar para lá texto aleatório.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

deixa ver s percebi....tenho k criar a classe Telnet no servidor..e por cada ligaçao criar um objecto do tipo telnet....para poder comunicar com o Telnet...e isso???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não lol tens de criar um dialogo um seja o telnet está programado para perceber determinados diálogos nomeadamente o TELNET e HTTP pensa nisso como uma conversa entre tuas pessoas uma pessoa só entende determinadas frases tipo Nome ? e responde a essas perguntas com outras frases que a outra pessoa entende. Ou seja tens de criar frases no teu servidor para que quando o TELNET conectar conseguir dialogar com o servidor e vice versa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

entao tem k ser uma "linguagem" especifica para o telnet entender....

e como escrevo e leio do servidor???? :-[

da-me um exemplo sff...

fazer um print no telnet tipo"ola mundo".....e ler qualquer coisa do telnet....sff

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pá eu não conheço o protocolo da TELNET mas o que tens de fazer é algo tipo

O cliente liga ao servidor e envia a frase "USER:PASS=magician:123" o servidor lê e vai ver para esta frase faz uma determinada operação de login e envia para o cliente "LOGIN=FAIL" ou "LOGIN=OK" e cliente dependendo da resposta faz um print de "Bem vindo Magician" ou "Login FAIL".

E assim sucessivamente basicamente é isto que tens de fazer mas como queres usar telnet tens de ver como o TELNET envia os pedidos e que deve ser envias as respostas para que ele perceba.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok....obrigado....vou tentar por isto a comunicar.....se nao conseguir  faço um cliente e deixo o TELNET de lado... :confused:

obrigado por tudo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O telnet não faz mais do que abrir uma sessão TCP, a partir dai a conversa flui com o protocolo implementado no cliente/servidor.

HTTP / SSL /SMTP / POP ou eventualmente algo inventado por ti.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora