Enviar comandos via Socket

4 respostas
henry.everton

Galera estou com um e-mail meio foda aqui.

estou tentando fazer um conexão via socket em um servidor..... beleza até entao eu consegui.
Agora eu tenho que informar um login e uma senha para conseguir me autenticar nele e enviar os demais comandos, ta ai meu problema

Como eu faço pra mandar este login e senha e os demais comandos :?:

vou colocar aqui o que eu fiz e vcs me dão uma ajuda.

Classe de conexao
import java.io.*;
import java.net.Socket;
public class ConexaoCallbox{
		
	public ConexaoCallbox(String ip,int porta,String login,String senha) throws IOException{
			Socket conexao = new Socket(ip,porta);
			System.out.println("Conectou!!!\n");
			PrintStream ps = new PrintStream(conexao.getOutputStream()); 
			ps.println(login);
			ps.println(senha);
			ps.println("Secret:l5callbox");
			conexao.close();
		}
	}
Classe Principal
import java.io.*;

public class Principal{

	public static void main(String args[]){
	
	try{
	InfoCallbox informacoes = new InfoCallbox();
		String ip = informacoes.getIp();
		int porta = informacoes.getPorta();
		String login = informacoes.getLogin();
		String senha = informacoes.getSenha();
		
	ConexaoCallbox conexao = new ConexaoCallbox(ip,porta,login,senha);
	}
	catch(IOException e){
	System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket.");
	e.printStackTrace();
	}
	}
	}

Tipo ele conecta tranquilamente, mas nao se autentica nem a pau.... é com este comando mesmo que eu mando a informação via socket?

Valeu

4 Respostas

kaique

Cara, primeiro, dá um flush() na tua stream só por garantia…já vi casos, aqui no GUJ, que a aplicação de um cara não funciona somente por causa de um flush(). Tá certo que no caso dele era uma aplicação JME, mas nunca se sabe né…
Outra coisa, dá uma checada na classe que tu tá tentando conectar, ou seja, o lado servidor. Verifica se nela você está conseguindo ler os bytes que você está escrevendo no cliente.

Qualquer coisa posta aí…
[]'s.

henry.everton

puts cara… me diz ai … como posso fazer este flush()…
e tem um problema cara… meu servidor nao tem nada … mas nada mesmo de java… é linux…

eu tenho que tipo mandar o comando e ele pegar…

kaique

Fazer o flush é simples, basta você chamar o método flush() da classe PrintStream.
Agora, eu não entendi a sua lógica. Me explica melhor o que você está querendo fazer?? Você está tentando conectar em outra máquina e enviar mensagens para ela, mas não tem uma aplicação java rodando no outro lado?
Eu não entendo muito disso, mas acho que você vai precisar de algum serviço “escutando” na porta que você conectou com o Socket. Geralmente se usa um ServerSocket do outro lado para receber as mensagens.

[]'s.

henry.everton

entao cara é o seguinte… eu estou fazendo uma aplicação que vai pegar informações de um servidor linux, são informações de ligação (voip), pra eu fazer isso eu tenho que me conectar via socket que consegui…e passar login e senha pra conectar… ai depois é só pegar as info entendeu?

Criado 20 de março de 2008
Ultima resposta 20 de mar. de 2008
Respostas 4
Participantes 2