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.
