Galera, estou com um programa pra ler linhas que um socket envia, ele se conecta a mim e eu rodo uma thread para ler linhas, porém nao consigo lelas e nao sei como resolver:
package org.inpe.popularBanco;
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class SocketServer extends Thread {
public static void main(String args[]) {
try {
//Cria um servidor via socket recebendo como argumento os dados passados pelo usuario
System.out.println(args[0]);
ServerSocket server = new ServerSocket(Integer.parseInt(args[0]));
Socket conexao = server.accept();
Thread t = new SocketServer(conexao);
t.start();
} catch (IOException e) {
// Caso ocorra alguma excessão de E/S, mostre qual foi.
System.out.println("IOException: " + e);
}
}
// parte que controla a recepção de mensagens deste cliente
private Socket conexao;
// construtor que recebe o socket deste cliente
public SocketServer(Socket s) {
conexao = s;
}
// execução da thread
@Override
public void run() {
try {
Scanner scan = new Scanner(System.in);
BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
String linha;
String linha2;
while (true) {
System.out.println("Ta rodando");
// pega o que o servidor enviou
linha = entrada.readLine();
linha2 = scan.next();
System.out.println(linha);
// verifica se a linha é valida ou nao é nula
// Se a linha for nula, termina a execução saindo com break
if (linha != null)
PopulaBanco.popularBancoViaSocket(linha.split("\t"));
if(linha2.equalsIgnoreCase("sair")){
System.out.flush();
return;
}
}
} catch (IOException e) {
// caso ocorra alguma exceção de E/S, mostre qual foi.
System.out.println("IOException: " + e);
}finally{
try {
conexao.close();
} catch (IOException ex) {
System.out.println("aqui");
ex.printStackTrace();
}
}
}
}
