/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package trabalhodelfino;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JOptionPane;
/**
*
* @author 1110108-3
*/
public class Servidor {
public static void main (String [] args) throws Exception {
//Passo 1 - Criar um servidor
ServerSocket servidor = new ServerSocket(40000);
// Estrutura de repetiçao infinita para o servidor
while(true){
//Passo 2 - Aguarda conexoes de Clientes
//Codigo para aceitar conexoes
Socket conexao = servidor.accept();
// Passo 3 - Criar os Strings de entrada e saida
DataInputStream entrada = new DataInputStream(conexao.getInputStream());
DataOutputStream saida = new DataOutputStream(conexao.getOutputStream());
//Passo 4 - Logica
Double saldo1 = 0.0;
Double saldo2 = 0.0;
Double saldo3 = 0.0;
int opcao = entrada.readInt();
int cod = entrada.readInt();
//Controle de Saldo
if(opcao == 1 && cod==1){
String resposta = "Saldo: "+saldo1;
System.out.println("Saldo \n" + resposta + "\n");
saida.writeUTF(resposta);
}
if(opcao == 1 && cod==2){
String resposta = "Saldo: "+saldo2;
saida.writeUTF(resposta);
}
if(opcao == 1 && cod==3){
String resposta = "Saldo: "+saldo3;
saida.writeUTF(resposta);
}
//Controle de Depósito
if(opcao == 2 && cod ==1){
Double dep = entrada.readDouble();
saldo1=saldo1+dep;
String resposta = "Depósito Realizado com Sucesso " +dep+ "\nSaldo Atual: "+saldo1;
System.out.println("Saldo \n" + resposta + "\n");
saida.writeUTF(resposta);
}
//Passo 5 - fechar os Streams de entrada e saida
entrada.close();
saida.close();
//Passo 5 - fechar a conexao
conexao.close();
}
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package trabalhodelfino;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
import javax.swing.JOptionPane;
/**
*
* @author 1110108-3
*/
public class Cliente {
public static void main(String[] args) throws Exception {
// Passo 1 - abrir conexao
Socket conexao = new Socket("127.0.0.1", 40000);
// Passo 2 - Criar os Strings de entrada e saida
DataInputStream entrada = new DataInputStream(conexao.getInputStream());
DataOutputStream saida = new DataOutputStream(conexao.getOutputStream());
//Passo 3 - Logica
int cod = 0;
Double dep = 0.0;
Integer opcao = 0;
while (opcao != 5) {
opcao = Integer.parseInt(JOptionPane.showInputDialog(""
+ "1 - Consulta Saldo.\n"
+ "2 - Depositar.\n"
+ "3- Sacar IRPF.\n"
+ "4 - Tranferencias.\n"
+ "5 - Sair. \n"));
/* switch (opcao) {
case "C":
cod = Integer.parseInt(JOptionPane.showInputDialog("Digite o código da conta: "));
break;
case "D":
cod = Integer.parseInt(JOptionPane.showInputDialog("Digite o código da conta: "));
dep = Double.parseDouble(JOptionPane.showInputDialog("Entre com a quantidade que deseja depositar: "));
break;
}
*/
if(opcao ==1){
cod = Integer.parseInt(JOptionPane.showInputDialog("Digite o código da conta: "));
}
if(opcao ==2){
cod = Integer.parseInt(JOptionPane.showInputDialog("Digite o código da conta: "));
dep = Double.parseDouble(JOptionPane.showInputDialog("Entre com a quantidade que deseja depositar: "));
}
if(opcao ==3){
cod = Integer.parseInt(JOptionPane.showInputDialog("Digite o código da conta: "));
}
if(opcao ==4){
cod = Integer.parseInt(JOptionPane.showInputDialog("Digite o código da conta: "));
}
if(opcao ==5){
JOptionPane.showMessageDialog(null, "Fim da execuçao!");
break;
}
saida.writeInt(opcao);
saida.writeInt(cod);
saida.writeDouble(dep);
String resposta = entrada.readUTF();
JOptionPane.showMessageDialog(null, "Cliente " + cod + "\n" + resposta);
}
//Passo 4 - fechar os Streams de entrada e saida
entrada.close();
saida.close();
//Passo 5 - fechar a conexao
conexao.close();
}
}
Eu estava fazendo com case mas decidi mudar pra if, o erro está que está sendo apontado é esse, se alguém puder ajudar agradeço
Exception in thread "main" java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:132)
at java.io.DataOutputStream.writeInt(DataOutputStream.java:198)
at trabalhodelfino.Cliente.main(Cliente.java:86)
Java Result: 1