Além desse erro meu servidor esta lendo um numero automaticamente e dando um NumberFormatException, mesmo meu cliente não digitando nada, além disso oq achei estranho é que essa parte já tava pronta e eu já tinha testado e funcionado deixei guardada em um pacote nunca mais mexi, só coloquei uma a mais variável pra ler do cliente e começou a dar esse erro.
Servidor
package Servidor;
import java.net.*;
import java.util.*;
import java.io.*;
public class Server {
public Server() {
}
public void IniciaServer(int porta) throws IOException {
ServerSocket servidor=null;
servidor=new ServerSocket(porta);
System.out.println("Porta "+porta+" aberta");
trataCliente(servidor);
//servidor.close();
}
public void trataCliente(ServerSocket servidor) throws IOException {
while(true) {
Socket cliente= servidor.accept();
System.out.println("Cliente "+cliente.getInetAddress().getHostAddress()+" conectado");
ClientT trata=new ClientT(cliente);
Thread t= new Thread(trata);
t.start();
}
}
}
Trata conexão com cliente
package Servidor;
import java.net.*;
import java.util.*;
import java.io.*;
import Banco.*;
public class ClientT implements Runnable{
Scanner s;
PrintStream p;
Socket Cliente;
public ClientT(Socket cliente) {
Cliente=cliente;
try {
p=new PrintStream(cliente.getOutputStream());//envia dados
s=new Scanner(cliente.getInputStream());//recebe dados
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
try {
Repositorio repo=new Repositorio();
Contas cl= new Contas();
repo.carregaUsuarios(cl.getContas());
GerenciarConta gc= new GerenciarConta();
//Scanner ler= new Scanner(System.in);
byte opc=1;
while(opc!=4) {
p.println("Bem-vindo ao Banco Central");
p.println("1-Acessar Conta");
p.println("2-Abrir Conta");
p.println("3-Depositar");
p.println("4-sair");
opc = s.nextByte();
switch(opc) {
case 1 :
p.println("Numero da conta");
int id= s.nextInt();
p.println("Agencia");
short ag= s.nextShort();
p.println("Senha");
short se=s.nextShort();
if(gc.acessaConta(id,ag,se)==null) {
p.println("Dados incorretos");
break;
}
while(opc!=4) {
p.println("Qual operacao deseja realizar");
p.println("1-Extrato");
p.println("2-Sacar");
p.println("3-Transfarencia");
p.println("4-Sair");
opc = s.nextByte();
switch(opc){
case 1: gc.acessaConta(id, ag).extrato();break;
case 2:
p.println("Valor do saque");
float v=s.nextFloat();
Thread t2= new Thread(()->{ gc.acessaConta(id, ag).saca(v);repo.salvaUmUsuario(gc.acessaConta(id, ag));});
t2.start();
break;
case 3:
p.println("Valor a transferir");
float vr=s.nextFloat();
p.println("Numero da conta destino");
int id2= s.nextInt();
p.println("Agencia");
short ag2= s.nextShort();
Thread t3= new Thread(()->{ gc.acessaConta(id, ag).
transferencia(vr,gc.acessaConta(id2,ag2));});
t3.start();
///gc.acessaConta(id).transferencia(valor,gc.acessaConta(id2));
repo.salvaUmUsuario(gc.acessaConta(id, ag));
repo.salvaUmUsuario(gc.acessaConta(id2, ag));break;
case 4:p.print("saindo da conta"); break;
}}break;
case 2 :
CadastraConta cad= new CadastraConta();
cad.cadastra();break;
case 3:
p.println("Insira o valor do deposito");
float valor= s.nextInt();
p.println("Numero da conta");
id= s.nextInt();
p.println("Agencia");
short agp=s.nextShort();
Thread t1= new Thread(()->{ gc.acessaConta(id, agp).deposita(valor);repo.salvaUmUsuario(gc.acessaConta(id, agp));});
t1.start();
case 4:p.println("Saindo");
}
}
try {
repo.SalvaUsuarios(cl.getContas());
} catch (IOException e) {
e.printStackTrace();
}
}catch (NoSuchElementException e) {
System.out.println("Cliente "+Cliente.getInetAddress().getHostAddress()+"desconectado");
e.printStackTrace();
}
}
}
Onde eu chamo o servidor
import JDBC.*;
import Servidor.*;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Scanner;
public class BancoCentral {
public static void main(String[] args) throws SQLException {
// GerenciaCon b=new GerenciaCon();
// b.AtualizaContaBD();
Server servidor=new Server();
try {
servidor.IniciaServer(8180);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Cliente
import java.util.*;
import java.net.*;
import java.io.*;
public class Client{
public static void main (String[]args) throws UnknownHostException, IOException {
Scanner teclado=new Scanner(System.in);
int porta=teclado.nextInt();
Socket cliente=new Socket("127.0.0.1",porta);
ServerSocket servidor= new ServerSocket();
Scanner ler=new Scanner (cliente.getInputStream());
Thread t=new Thread(()->{ while (true) {
System.out.println(ler.nextLine());}
});
Thread t2=new Thread(()->{
while (teclado.hasNextLine()) { try{
PrintStream send=new PrintStream(cliente.getOutputStream());
send.println(teclado.nextLine());}catch(IOException e){e.printStackTrace();}
}} );
t.start();
t2.start();
}
}