[RESOLVIDO]Problemas com leituras em OutputStream

3 respostas
J

Bom pessoal, acho que devo começar esse tópico me desculpando por possíveis problemas de noob que vocês possam encontrar. Comecei a estudar desenvolvimento java web esse semestre.

Tenho um exercício que propõe a criação de um servidor de piadas, o cliente solicita uma categoria e o servidor retorna uma piada aleatória. Aqui estão as classes:

Servidor:

package clienteservidor;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;

public class ServidorSimples {
    
    public static void main(String[] args) {
        try {
            ServerSocket servidor = new ServerSocket(6000);
            while (true) {
                // espera um pedido
                Socket conexao = servidor.accept();
                PrintStream saida = new PrintStream(conexao.getOutputStream());
                BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
                
                if(conexao.isConnected()){
                    int categoria = Integer.parseInt(String.valueOf(entrada.read()));
                    returnPiada(saida,categoria);
                }
                
                conexao.close();
            }

        } catch (Exception e) {
            System.out.println("Erro: " + e.toString());
        }
    }

    public static void returnPiada(PrintStream saida, int categoria){
        String vetor1[] = new String[5];
        vetor1[0] = "A loira pede uma pizza pelo telefone. A pessoa da pizzaria pergunta: - A senhora quer que eu corte em 4 ou 8 pedaços? E a loira: - 4 por favor. Eu não agüento comer 8 pedaços? ";
        vetor1[1] = "Como uma loira mata um peixe? R: Ela o afoga!";
        vetor1[2] = "O guarda de trânsito pára a loira que estava trafegando na contra-mão e pergunta: - Posso saber aonde a senhorita estava indo? E a loira: - Ah, seu guarda, acho que nem vou mais... tá todo mundo voltando!";
        vetor1[3] = "Qual a diferença entre uma loira inteligente e o pé grande? R: O pé grande existe! ";
        vetor1[4] = "Como você distrai uma loira por várias horas? R: Escreva ?leia o outro lado? nos dois lados de um papel e dê a ela. ";
        String vetor2[] = new String[5];
        vetor2[0] = "O sujeito bate à porta de uma casa e, assim que um homem abre, ele diz: - O senhor poderia contribuir com o Lar dos Idosos? - Claro! Espere um pouco, que vou buscar minha sogra!";
        vetor2[1] = "O genro chegou pra sogra dele e falou; Genro: nossa sogrinha, eu queria que a senhora fosse uma estrela! Sogra: Ai é? Porquê? - Responde toda feliz. Genro: Porque a estrela mais próxima está a milhões e milhões de kms da terra...";
        vetor2[2] = "O cara voltava do enterro de sua sogra, quando ao passar por um Prédio em obras um tijolo caiu lá de cima e quase acertou a cabeça dele.... O homem olhou pra cima e gritou: - Já chegou aí, sua desgraçada!!! E ainda continua com má pontaria!";
        vetor2[3] = "A garota chega para mãe, reclamando do ceticismo do namorado. - Mãe, o Mário diz que não acredita em inferno! - Case-se com ele minha filha e deixe o resto comigo!";
        vetor2[4] = "Um cara foi a delegacia e disse: - Eu vim dar queixa, pois a minha sogra sumiu. O delegado disse: - Há quanto tempo ela sumiu? - Duas semanas - respondeu o genro. - E só agora é que você me fala? - É que eu custei a acreditar que eu tivesse tanta sorte!";
        String vetor3[] = new String[5];
        vetor3[0] = "Assim que Joãozinho chega da escola, o pai já fala: ? Quero ver o seu boletim! Joãozinho diz: ? Infelizmente não vai dar!? ? Como não vai dar?! Joãozinho: - É que eu emprestei para um amigo? Ele queria dar um susto no pai dele! ";
        vetor3[1] = "Joãozinho chega correndo em casa e diz pra sua mãe: ? Mãe, eu joguei uma bomba na mesa da professora. A mãe gritou com ele.. ? Você está louco? Volta e pede desculpa pra sua professora. ? Mas mãe, que professora?! ";
        vetor3[2] = "Certo dia Joãozinho e seu primo brincando até que seu primo fala: - Joãozinho, vamos brincar de rima? - Vamos sim! - Eu começo! - Vá em frente!? - Rima não rima, eu comi a sua prima! Aí o Joãozinho pensa um pouquinho e manda: - Rima não rima, eu comi a sua irmã! - Epa! Mas não rimou! - Mas que eu comi, eu comi! ";
        vetor3[3] = "Joãozinho trás para o pai o recibo da mensalidade escolar. ? Meu Deus! Como é caro estudar nesse colégio. E o menino responde ? ? E olhe, pai, eu sou o que menos estuda da minha classe! ";
        vetor3[4] = "Joãozinho levanta de manhã e grita: ? Mãe, que cheiro forte é esse de chifre queimado? ? Não é nada demais, filho! Foi seu pai que amanheceu com febre? ";
        String vetor4[] = new String[5];
        vetor4[0] = "Como é que se faz um monte de velhinhas gritar ?Merda?? Resp: É só gritar ?Bingo?!";
        vetor4[1] = "Aquela velhinha era sozinha, coitadinha, nem visita recebia, sem saúde, sem dinheiro, sem amigos? Um dia resolveu suicidar, tirar sua vida e ligou para o seu médico para saber qual era a posição exata do coração! O médico explicou: ? Dois dedos abaixo do seio esquerdo. No dia seguinte sai a notícia no jornal: ?Mulher idosa tenta o suicídio com um tiro no joelho?. ";
        vetor4[2] = "No meio da missa, todos ouvindo o padre e nesse instante o Diabo aparece no altar? Todos saem correndo, até o Padre.. mas fica um velhinho.. - E o senhor? ? o Diabo pergunta ? O senhor não tem medo de mim? - Imagina! ? responde o velhinho ? Eu já fiquei 40 anos casado com sua irmã! ";
        vetor4[3] = "O velhinho foi ao médico reclamar da dor na perna direita. O médico o examina, examina e não acha nada de errado? - A sua perna não tem nada ? conclui. ? Está perfeita! - Então, por que é que dói? - Deve ser por causa da idade! - Como é que a outra também tem a mesma idade e não dói? ";
        vetor4[4] = "O velhinho chega novamente na mesma casa de prostituição de costume e pergunta? - A Marisa está? - A Marisa está com um cliente no quarto! - Tudo bem, eu espero! - Mas então por que o senhor não vai com outra? Tem a Joana, a Priscila, a Janaína que é novinha, a? - Não? não? eu só gosto da Marisa! - Uai.. o que é que a Marisa tem de tão especial? - Paciência! Muita paciência! ";
        String vetor5[] = new String[5];
        vetor5[0] = "A policia estava fazendo a maior blitz por conta de um Assalto a um banco, acontecido nas imediações de Osasco. Quando interceptaram uma Kombi, considerada suspeita, já que estava lotada de japoneses, o policial foiLogo gritando: 'Desce todo mundo! Mãos na cabeça!' A japonezada obedeceu em silêncio. Agora um por um, vai recitando o nome! E eles, obedientes, foram se apresentando: - Sartamo Obanko. - Matamo Okasha. - Kontiro Nosako. - Katamo Osnique. - Saimo Koreno. - Fugimo Nakombi - Osguarda Pararo. - Tomamo Noku.";
        vetor5[1] = "Um dia, o português resolveu tirar uma onda com a cara do japonês: - ô Kioto, me falaram que teu pinto e deste tamaninho. - Enton quer dizer que seu muié já contou proce, hein?";
        vetor5[2] = "Mal o japonês chegou ao Brasil, sua esposa já ia ter nenem. Como ele queria prestar uma homenagem a terra que tão bem o acolhera, resolveu dar um nome brasileiro ao filho. Pediu uma sugestão para um amigo que lhe disse: - Sugiro Alberto, Ronaldo, Carlos, Antônio... E o zapon, todo satisfeito: -ótimo nome! ótimo nome! Nome garoto ser Sugiro, no?";
        vetor5[3] = "Qual a semelhança entre um japonês e R$99,00 reais? R: É quase sem pau!";
        vetor5[4] = "O japones telefona para o chefe: 'Sefi, Japa no vai trabaia hoji, muito doenti. Dô cabeça, dô baliga, dô perna. No vai!' Diz o patrão: 'Mas, Japa, eu preciso muito de você aqui, hoje! Olhe, quando eu me sinto assim, eu procuro minha mulher e peço para ela fazer sexo comigo. Isto me faz sentir melhor e então eu posso trabalhar. Tente isto.' Algumas horas mais tarde, o japonês telefona e diz: 'Sefi, fazi o que sefi mandô. Sinto booom! Za vai trabaiá. Bonita sua casa, sefi!'";
        Random random = new Random();
        int intervalo_randomico = random.nextInt(5);
        if(categoria==1){
            saida.print(vetor1[intervalo_randomico]);
        }
        else if(categoria==2){
            saida.print(vetor2[intervalo_randomico]);
        }
        else if(categoria==3){
            saida.print(vetor3[intervalo_randomico]);
        }
        else if(categoria==4){
            saida.print(vetor4[intervalo_randomico]);
        }
        else if(categoria==5){
            saida.print(vetor5[intervalo_randomico]);
        }
    }
}

E cliente:

package clienteservidor;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import javax.swing.JOptionPane;

public class ClienteSimples {

    public static void main(String[] args) {

        try {
            int op = 0;

            do {
                //conexão
                Socket conexao = new Socket("xxxx", 6000);
                //objeto que envia dados ao servidor
                PrintStream saida = new PrintStream(conexao.getOutputStream());
                //objeto que recebe dados do servidor
                BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
                //int que guarda a escolha do usuário
                op = Integer.parseInt(JOptionPane.showInputDialog("Escolha um gênero de piada:\n\n[1]Loira\n[2]Sogra"
                        + "\n[3]Joãozinho\n[4]Velhinhos\n[5]Japoneses\n[6]Sair\n\n"));
                
                switch (op) {
                    case 1:
                        saida.print(1);
                        System.out.println(entrada.readLine());
                        break;
                    case 2:
                        saida.print(2);
                        System.out.println(entrada.readLine());
                        break;
                    case 3:
                        saida.print(3);
                        System.out.println(entrada.readLine());
                        break;
                    case 4:
                        saida.print(4);
                        System.out.println(entrada.readLine());
                        break;
                    case 5:
                        saida.print(5);
                        System.out.println(entrada.readLine());
                        break;
                    case 6:
                        conexao.close();
                        break;
                    default:
                        JOptionPane.showMessageDialog(null, "Opção Inválida!");
                        break;
                }

            } while (op != 6);

        } catch (Exception e) {
            System.out.println("Erro: " + e.toString());
        }
    }
}

Meu problema é o seguinte: quando seleciono uma categoria, ele retorna null. Percebi que esse problema é com o int que eu envio ao servidor, porque no método returnPiada(), eu troquei o último else if() por else e ele retornou uma piada do vetor5[]. Alguem poderia me ajudar com esse problema?

Me desculpem por não tirar as piadas e fazer esse post imenso, eu fiz na pressa pois estou no serviço…
desde já grato.

3 Respostas

ralphsilver
JorgeMN:
Bom pessoal, acho que devo começar esse tópico me desculpando por possíveis problemas de noob que vocês possam encontrar. Comecei a estudar desenvolvimento java web esse semestre.

Tenho um exercício que propõe a criação de um servidor de piadas, o cliente solicita uma categoria e o servidor retorna uma piada aleatória. Aqui estão as classes:

Servidor:
package clienteservidor;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;

public class ServidorSimples {
    
    public static void main(String[] args) {
        try {
            ServerSocket servidor = new ServerSocket(6000);
            while (true) {
                // espera um pedido
                Socket conexao = servidor.accept();
                PrintStream saida = new PrintStream(conexao.getOutputStream());
                BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
                
                if(conexao.isConnected()){
                    int categoria = Integer.parseInt(String.valueOf(entrada.read()));
                    returnPiada(saida,categoria);
                }
                
                conexao.close();
            }

        } catch (Exception e) {
            System.out.println("Erro: " + e.toString());
        }
    }

    public static void returnPiada(PrintStream saida, int categoria){
        String vetor1[] = new String[5];
        vetor1[0] = "A loira pede uma pizza pelo telefone. A pessoa da pizzaria pergunta: - A senhora quer que eu corte em 4 ou 8 pedaços? E a loira: - 4 por favor. Eu não agüento comer 8 pedaços? ";
        vetor1[1] = "Como uma loira mata um peixe? R: Ela o afoga!";
        vetor1[2] = "O guarda de trânsito pára a loira que estava trafegando na contra-mão e pergunta: - Posso saber aonde a senhorita estava indo? E a loira: - Ah, seu guarda, acho que nem vou mais... tá todo mundo voltando!";
        vetor1[3] = "Qual a diferença entre uma loira inteligente e o pé grande? R: O pé grande existe! ";
        vetor1[4] = "Como você distrai uma loira por várias horas? R: Escreva ?leia o outro lado? nos dois lados de um papel e dê a ela. ";
        String vetor2[] = new String[5];
        vetor2[0] = "O sujeito bate à porta de uma casa e, assim que um homem abre, ele diz: - O senhor poderia contribuir com o Lar dos Idosos? - Claro! Espere um pouco, que vou buscar minha sogra!";
        vetor2[1] = "O genro chegou pra sogra dele e falou; Genro: nossa sogrinha, eu queria que a senhora fosse uma estrela! Sogra: Ai é? Porquê? - Responde toda feliz. Genro: Porque a estrela mais próxima está a milhões e milhões de kms da terra...";
        vetor2[2] = "O cara voltava do enterro de sua sogra, quando ao passar por um Prédio em obras um tijolo caiu lá de cima e quase acertou a cabeça dele.... O homem olhou pra cima e gritou: - Já chegou aí, sua desgraçada!!! E ainda continua com má pontaria!";
        vetor2[3] = "A garota chega para mãe, reclamando do ceticismo do namorado. - Mãe, o Mário diz que não acredita em inferno! - Case-se com ele minha filha e deixe o resto comigo!";
        vetor2[4] = "Um cara foi a delegacia e disse: - Eu vim dar queixa, pois a minha sogra sumiu. O delegado disse: - Há quanto tempo ela sumiu? - Duas semanas - respondeu o genro. - E só agora é que você me fala? - É que eu custei a acreditar que eu tivesse tanta sorte!";
        String vetor3[] = new String[5];
        vetor3[0] = "Assim que Joãozinho chega da escola, o pai já fala: ? Quero ver o seu boletim! Joãozinho diz: ? Infelizmente não vai dar!? ? Como não vai dar?! Joãozinho: - É que eu emprestei para um amigo? Ele queria dar um susto no pai dele! ";
        vetor3[1] = "Joãozinho chega correndo em casa e diz pra sua mãe: ? Mãe, eu joguei uma bomba na mesa da professora. A mãe gritou com ele.. ? Você está louco? Volta e pede desculpa pra sua professora. ? Mas mãe, que professora?! ";
        vetor3[2] = "Certo dia Joãozinho e seu primo brincando até que seu primo fala: - Joãozinho, vamos brincar de rima? - Vamos sim! - Eu começo! - Vá em frente!? - Rima não rima, eu comi a sua prima! Aí o Joãozinho pensa um pouquinho e manda: - Rima não rima, eu comi a sua irmã! - Epa! Mas não rimou! - Mas que eu comi, eu comi! ";
        vetor3[3] = "Joãozinho trás para o pai o recibo da mensalidade escolar. ? Meu Deus! Como é caro estudar nesse colégio. E o menino responde ? ? E olhe, pai, eu sou o que menos estuda da minha classe! ";
        vetor3[4] = "Joãozinho levanta de manhã e grita: ? Mãe, que cheiro forte é esse de chifre queimado? ? Não é nada demais, filho! Foi seu pai que amanheceu com febre? ";
        String vetor4[] = new String[5];
        vetor4[0] = "Como é que se faz um monte de velhinhas gritar ?Merda?? Resp: É só gritar ?Bingo?!";
        vetor4[1] = "Aquela velhinha era sozinha, coitadinha, nem visita recebia, sem saúde, sem dinheiro, sem amigos? Um dia resolveu suicidar, tirar sua vida e ligou para o seu médico para saber qual era a posição exata do coração! O médico explicou: ? Dois dedos abaixo do seio esquerdo. No dia seguinte sai a notícia no jornal: ?Mulher idosa tenta o suicídio com um tiro no joelho?. ";
        vetor4[2] = "No meio da missa, todos ouvindo o padre e nesse instante o Diabo aparece no altar? Todos saem correndo, até o Padre.. mas fica um velhinho.. - E o senhor? ? o Diabo pergunta ? O senhor não tem medo de mim? - Imagina! ? responde o velhinho ? Eu já fiquei 40 anos casado com sua irmã! ";
        vetor4[3] = "O velhinho foi ao médico reclamar da dor na perna direita. O médico o examina, examina e não acha nada de errado? - A sua perna não tem nada ? conclui. ? Está perfeita! - Então, por que é que dói? - Deve ser por causa da idade! - Como é que a outra também tem a mesma idade e não dói? ";
        vetor4[4] = "O velhinho chega novamente na mesma casa de prostituição de costume e pergunta? - A Marisa está? - A Marisa está com um cliente no quarto! - Tudo bem, eu espero! - Mas então por que o senhor não vai com outra? Tem a Joana, a Priscila, a Janaína que é novinha, a? - Não? não? eu só gosto da Marisa! - Uai.. o que é que a Marisa tem de tão especial? - Paciência! Muita paciência! ";
        String vetor5[] = new String[5];
        vetor5[0] = "A policia estava fazendo a maior blitz por conta de um Assalto a um banco, acontecido nas imediações de Osasco. Quando interceptaram uma Kombi, considerada suspeita, já que estava lotada de japoneses, o policial foiLogo gritando: 'Desce todo mundo! Mãos na cabeça!' A japonezada obedeceu em silêncio. Agora um por um, vai recitando o nome! E eles, obedientes, foram se apresentando: - Sartamo Obanko. - Matamo Okasha. - Kontiro Nosako. - Katamo Osnique. - Saimo Koreno. - Fugimo Nakombi - Osguarda Pararo. - Tomamo Noku.";
        vetor5[1] = "Um dia, o português resolveu tirar uma onda com a cara do japonês: - ô Kioto, me falaram que teu pinto e deste tamaninho. - Enton quer dizer que seu muié já contou proce, hein?";
        vetor5[2] = "Mal o japonês chegou ao Brasil, sua esposa já ia ter nenem. Como ele queria prestar uma homenagem a terra que tão bem o acolhera, resolveu dar um nome brasileiro ao filho. Pediu uma sugestão para um amigo que lhe disse: - Sugiro Alberto, Ronaldo, Carlos, Antônio... E o zapon, todo satisfeito: -ótimo nome! ótimo nome! Nome garoto ser Sugiro, no?";
        vetor5[3] = "Qual a semelhança entre um japonês e R$99,00 reais? R: É quase sem pau!";
        vetor5[4] = "O japones telefona para o chefe: 'Sefi, Japa no vai trabaia hoji, muito doenti. Dô cabeça, dô baliga, dô perna. No vai!' Diz o patrão: 'Mas, Japa, eu preciso muito de você aqui, hoje! Olhe, quando eu me sinto assim, eu procuro minha mulher e peço para ela fazer sexo comigo. Isto me faz sentir melhor e então eu posso trabalhar. Tente isto.' Algumas horas mais tarde, o japonês telefona e diz: 'Sefi, fazi o que sefi mandô. Sinto booom! Za vai trabaiá. Bonita sua casa, sefi!'";
        Random random = new Random();
        int intervalo_randomico = random.nextInt(5);
        if(categoria==1){
            saida.print(vetor1[intervalo_randomico]);
        }
        else if(categoria==2){
            saida.print(vetor2[intervalo_randomico]);
        }
        else if(categoria==3){
            saida.print(vetor3[intervalo_randomico]);
        }
        else if(categoria==4){
            saida.print(vetor4[intervalo_randomico]);
        }
        else if(categoria==5){
            saida.print(vetor5[intervalo_randomico]);
        }
    }
}
E cliente:
package clienteservidor;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import javax.swing.JOptionPane;

public class ClienteSimples {

    public static void main(String[] args) {

        try {
            int op = 0;

            do {
                //conexão
                Socket conexao = new Socket("xxxx", 6000);
                //objeto que envia dados ao servidor
                PrintStream saida = new PrintStream(conexao.getOutputStream());
                //objeto que recebe dados do servidor
                BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
                //int que guarda a escolha do usuário
                op = Integer.parseInt(JOptionPane.showInputDialog("Escolha um gênero de piada:\n\n[1]Loira\n[2]Sogra"
                        + "\n[3]Joãozinho\n[4]Velhinhos\n[5]Japoneses\n[6]Sair\n\n"));
                
                switch (op) {
                    case 1:
                        saida.print(1);
                        System.out.println(entrada.readLine());
                        break;
                    case 2:
                        saida.print(2);
                        System.out.println(entrada.readLine());
                        break;
                    case 3:
                        saida.print(3);
                        System.out.println(entrada.readLine());
                        break;
                    case 4:
                        saida.print(4);
                        System.out.println(entrada.readLine());
                        break;
                    case 5:
                        saida.print(5);
                        System.out.println(entrada.readLine());
                        break;
                    case 6:
                        conexao.close();
                        break;
                    default:
                        JOptionPane.showMessageDialog(null, "Opção Inválida!");
                        break;
                }

            } while (op != 6);

        } catch (Exception e) {
            System.out.println("Erro: " + e.toString());
        }
    }
}

Meu problema é o seguinte: quando seleciono uma categoria, ele retorna null. Percebi que esse problema é com o int que eu envio ao servidor, porque no método returnPiada(), eu troquei o último else if() por else e ele retornou uma piada do vetor5[]. Alguem poderia me ajudar com esse problema?

Me desculpem por não tirar as piadas e fazer esse post imenso, eu fiz na pressa pois estou no serviço...
desde já grato.

Código arrumado!!

Ele estava certo... o que estava acontecendo é que vc está usando esse printStream... tem que tomar cuidado porque ele faz conversão de dados pra vc... as opções estavam chegando numeradas em código da tabela ASCII... ex.. o número 1 da tabela ASCII é 49 ...

Servidor:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clienteservidor;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;

public class ServidorSimples {
    
    public static void main(String[] args) {
        try {
            ServerSocket servidor = new ServerSocket(6000);
            while (true) {
                // espera um pedido
                Socket conexao = servidor.accept();
                PrintStream saida = new PrintStream(conexao.getOutputStream());
                BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
                
                if(conexao.isConnected()){
                    int categoria = entrada.read();
                    System.out.println("------------" + categoria);
                    returnPiada(saida,categoria);
                }
                
                conexao.close();
            }

        } catch (Exception e) {
            System.out.println("Erro: " + e.toString());
        }
    }

    public static void returnPiada(PrintStream saida, int categoria){
        String vetor1[] = new String[5];
        vetor1[0] = "A loira pede uma pizza pelo telefone. A pessoa da pizzaria pergunta: - A senhora quer que eu corte em 4 ou 8 pedaços? E a loira: - 4 por favor. Eu não agüento comer 8 pedaços? ";
        vetor1[1] = "Como uma loira mata um peixe? R: Ela o afoga!";
        vetor1[2] = "O guarda de trânsito pára a loira que estava trafegando na contra-mão e pergunta: - Posso saber aonde a senhorita estava indo? E a loira: - Ah, seu guarda, acho que nem vou mais... tá todo mundo voltando!";
        vetor1[3] = "Qual a diferença entre uma loira inteligente e o pé grande? R: O pé grande existe! ";
        vetor1[4] = "Como você distrai uma loira por várias horas? R: Escreva ?leia o outro lado? nos dois lados de um papel e dê a ela. ";
        String vetor2[] = new String[5];
        vetor2[0] = "O sujeito bate à porta de uma casa e, assim que um homem abre, ele diz: - O senhor poderia contribuir com o Lar dos Idosos? - Claro! Espere um pouco, que vou buscar minha sogra!";
        vetor2[1] = "O genro chegou pra sogra dele e falou; Genro: nossa sogrinha, eu queria que a senhora fosse uma estrela! Sogra: Ai é? Porquê? - Responde toda feliz. Genro: Porque a estrela mais próxima está a milhões e milhões de kms da terra...";
        vetor2[2] = "O cara voltava do enterro de sua sogra, quando ao passar por um Prédio em obras um tijolo caiu lá de cima e quase acertou a cabeça dele.... O homem olhou pra cima e gritou: - Já chegou aí, sua desgraçada!!! E ainda continua com má pontaria!";
        vetor2[3] = "A garota chega para mãe, reclamando do ceticismo do namorado. - Mãe, o Mário diz que não acredita em inferno! - Case-se com ele minha filha e deixe o resto comigo!";
        vetor2[4] = "Um cara foi a delegacia e disse: - Eu vim dar queixa, pois a minha sogra sumiu. O delegado disse: - Há quanto tempo ela sumiu? - Duas semanas - respondeu o genro. - E só agora é que você me fala? - É que eu custei a acreditar que eu tivesse tanta sorte!";
        String vetor3[] = new String[5];
        vetor3[0] = "Assim que Joãozinho chega da escola, o pai já fala: ? Quero ver o seu boletim! Joãozinho diz: ? Infelizmente não vai dar!? ? Como não vai dar?! Joãozinho: - É que eu emprestei para um amigo? Ele queria dar um susto no pai dele! ";
        vetor3[1] = "Joãozinho chega correndo em casa e diz pra sua mãe: ? Mãe, eu joguei uma bomba na mesa da professora. A mãe gritou com ele.. ? Você está louco? Volta e pede desculpa pra sua professora. ? Mas mãe, que professora?! ";
        vetor3[2] = "Certo dia Joãozinho e seu primo brincando até que seu primo fala: - Joãozinho, vamos brincar de rima? - Vamos sim! - Eu começo! - Vá em frente!? - Rima não rima, eu comi a sua prima! Aí o Joãozinho pensa um pouquinho e manda: - Rima não rima, eu comi a sua irmã! - Epa! Mas não rimou! - Mas que eu comi, eu comi! ";
        vetor3[3] = "Joãozinho trás para o pai o recibo da mensalidade escolar. ? Meu Deus! Como é caro estudar nesse colégio. E o menino responde ? ? E olhe, pai, eu sou o que menos estuda da minha classe! ";
        vetor3[4] = "Joãozinho levanta de manhã e grita: ? Mãe, que cheiro forte é esse de chifre queimado? ? Não é nada demais, filho! Foi seu pai que amanheceu com febre? ";
        String vetor4[] = new String[5];
        vetor4[0] = "Como é que se faz um monte de velhinhas gritar ?Merda?? Resp: É só gritar ?Bingo?!";
        vetor4[1] = "Aquela velhinha era sozinha, coitadinha, nem visita recebia, sem saúde, sem dinheiro, sem amigos? Um dia resolveu suicidar, tirar sua vida e ligou para o seu médico para saber qual era a posição exata do coração! O médico explicou: ? Dois dedos abaixo do seio esquerdo. No dia seguinte sai a notícia no jornal: ?Mulher idosa tenta o suicídio com um tiro no joelho?. ";
        vetor4[2] = "No meio da missa, todos ouvindo o padre e nesse instante o Diabo aparece no altar? Todos saem correndo, até o Padre.. mas fica um velhinho.. - E o senhor? ? o Diabo pergunta ? O senhor não tem medo de mim? - Imagina! ? responde o velhinho ? Eu já fiquei 40 anos casado com sua irmã! ";
        vetor4[3] = "O velhinho foi ao médico reclamar da dor na perna direita. O médico o examina, examina e não acha nada de errado? - A sua perna não tem nada ? conclui. ? Está perfeita! - Então, por que é que dói? - Deve ser por causa da idade! - Como é que a outra também tem a mesma idade e não dói? ";
        vetor4[4] = "O velhinho chega novamente na mesma casa de prostituição de costume e pergunta? - A Marisa está? - A Marisa está com um cliente no quarto! - Tudo bem, eu espero! - Mas então por que o senhor não vai com outra? Tem a Joana, a Priscila, a Janaína que é novinha, a? - Não? não? eu só gosto da Marisa! - Uai.. o que é que a Marisa tem de tão especial? - Paciência! Muita paciência! ";
        String vetor5[] = new String[5];
        vetor5[0] = "A policia estava fazendo a maior blitz por conta de um Assalto a um banco, acontecido nas imediações de Osasco. Quando interceptaram uma Kombi, considerada suspeita, já que estava lotada de japoneses, o policial foiLogo gritando: 'Desce todo mundo! Mãos na cabeça!' A japonezada obedeceu em silêncio. Agora um por um, vai recitando o nome! E eles, obedientes, foram se apresentando: - Sartamo Obanko. - Matamo Okasha. - Kontiro Nosako. - Katamo Osnique. - Saimo Koreno. - Fugimo Nakombi - Osguarda Pararo. - Tomamo Noku.";
        vetor5[1] = "Um dia, o português resolveu tirar uma onda com a cara do japonês: - ô Kioto, me falaram que teu pinto e deste tamaninho. - Enton quer dizer que seu muié já contou proce, hein?";
        vetor5[2] = "Mal o japonês chegou ao Brasil, sua esposa já ia ter nenem. Como ele queria prestar uma homenagem a terra que tão bem o acolhera, resolveu dar um nome brasileiro ao filho. Pediu uma sugestão para um amigo que lhe disse: - Sugiro Alberto, Ronaldo, Carlos, Antônio... E o zapon, todo satisfeito: -ótimo nome! ótimo nome! Nome garoto ser Sugiro, no?";
        vetor5[3] = "Qual a semelhança entre um japonês e R$99,00 reais? R: É quase sem pau!";
        vetor5[4] = "O japones telefona para o chefe: 'Sefi, Japa no vai trabaia hoji, muito doenti. Dô cabeça, dô baliga, dô perna. No vai!' Diz o patrão: 'Mas, Japa, eu preciso muito de você aqui, hoje! Olhe, quando eu me sinto assim, eu procuro minha mulher e peço para ela fazer sexo comigo. Isto me faz sentir melhor e então eu posso trabalhar. Tente isto.' Algumas horas mais tarde, o japonês telefona e diz: 'Sefi, fazi o que sefi mandô. Sinto booom! Za vai trabaiá. Bonita sua casa, sefi!'";
        Random random = new Random();
        int intervalo_randomico = random.nextInt(5);
        if(categoria==1){
            saida.print(vetor1[intervalo_randomico]);
        }
        else if(categoria==2){
            saida.print(vetor2[intervalo_randomico]);
        }
        else if(categoria==3){
            saida.print(vetor3[intervalo_randomico]);
        }
        else if(categoria==4){
            saida.print(vetor4[intervalo_randomico]);
        }
        else if(categoria==5){
            saida.print(vetor5[intervalo_randomico]);
        }
    }
}

Cliente:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clienteservidor;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import javax.swing.JOptionPane;

public class ClienteSimples {

    public static void main(String[] args) {

        try {
            int op = 0;

            do {
                //conexão
                Socket conexao = new Socket("localhost", 6000);
                //objeto que envia dados ao servidor
                OutputStream os = conexao.getOutputStream();
                //objeto que recebe dados do servidor
                BufferedReader entrada = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
                //int que guarda a escolha do usuário
                op = Integer.parseInt(JOptionPane.showInputDialog("Escolha um gênero de piada:\n\n[1]Loira\n[2]Sogra"
                        + "\n[3]Joãozinho\n[4]Velhinhos\n[5]Japoneses\n[6]Sair\n\n"));
                
                System.out.println("====================="+op);
                
                switch (op) {
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                        os.write(op);
                        System.out.println(entrada.readLine());
                        break;
                    case 6:
                        conexao.close();
                        break;
                    default:
                        JOptionPane.showMessageDialog(null, "Opção Inválida!");
                        break;
                }

            } while (op != 6);

        } catch (Exception e) {
            System.out.println("Erro: " + e.toString());
        }
    }
}

Também dei uma enxugada no código... principalmente no switch... porque se vc vai usar o valor recebido.. nao tem porque de tratar cada um deles... use eles direto!!!

J

Muito obrigado, funcionou direitinho :smiley:

ralphsilver

JorgeMN:
Muito obrigado, funcionou direitinho :smiley:

Apenas põe [RESOLVIDO] no título

Criado 3 de setembro de 2012
Ultima resposta 3 de set. de 2012
Respostas 3
Participantes 2