Java - Porblema con java.io y Socket

 
Vista:

Porblema con java.io y Socket

Publicado por Juan Manuel Castañeda (14 intervenciones) el 03/04/2007 19:06:08
¿Por qué el siguiente código no se detiene a esperar que se le ingrese datos y cómo corijo el problema?
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.DatagramSocket;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class Leer {
ServerSocket servidor;
SocketAddress sa;
Socket socket;
private InputStream devolver(){
InputStream is=null;
try{
socket=new Socket(InetAddress.getByName("loclahost"),9000);
is=socket.getInputStream();
socket.close();
}
catch(IOException e){
System.err.println(e.getMessage());
}
return is;
}
DataInputStream devolverDataInputStream(){
return new DataInputStream(devolver());
}
public Leer(){
try{
servidor=new ServerSocket(2000);



}
catch(IOException e){
System.err.println(e.getMessage());
}
}
public String leerCadena() throws IOException {
//BufferedReader br =
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);


return new BufferedReader(new InputStreamReader(devolver())).readLine();

}

public byte leerByte() throws IOException {
return devolverDataInputStream().readByte();
}

public char leerCaracter() throws IOException {


return devolverDataInputStream().readChar();

}

public double leerDoble() throws IOException {
return devolverDataInputStream().readDouble();
}

public float leerDecimalSimplePrecision() throws IOException {
return devolverDataInputStream().readFloat();
}

public int leerEntero() throws IOException {
return devolverDataInputStream().readInt();
}

public short leerEnteroCorto() throws IOException {
return devolverDataInputStream().readShort();
}

public long leerEnteroLargo() throws IOException {
return devolverDataInputStream().readLong();
}
protected void finalize(){
try{

servidor.close();
}
catch(IOException e){
System.err.println(e.getMessage());
}
}
}
public class Comparar {
public Comparar() {
}
public static boolean equals(byte a,byte b){
return(a==b);
}
public static boolean equals(char a,char b){
return(a==b);
}
public static boolean equals(double a,double b){
return(a==b);
}
public static boolean equals(float a,float b){
return(a==b);
}
public static boolean equals(int a,int b){
return(a==b);
}
public static boolean equals(long a,long b){
return(a==b);
}
public static boolean equals(short a,short b){
return(a==b);
}
}
import java.util.Iterator;
import java.util.Vector;

import LecturaComparacion.*;
import java.io.PrintWriter;

public class Class3 {
PrintWriter out=null;
public String getNombre() {
return nombre;
}

public void setNombre(String nombre) throws Exception{
if(nombre.equals("") || nombre==null)
throw new Exception("Apellido DEBE TEENR VALOR");
this.nombre = nombre;
}

public String getApellido() {
return apellido;
}

public void setApellido(String apellido) throws Exception{
if (apellido.equals("") || apellido==null)
throw new Exception("Apellido DEBE TEENR VALOR");
this.apellido = apellido;
}

public String getTipodoc() {
return tipodoc;
}

public void setTipodoc(String tipodoc) throws Exception{
if(!(tipodoc.equals(td.DNI) || tipodoc.equals(td.LC) ||
tipodoc.equals(td.LI) || tipodoc.equals(td.Pasaporte)))
throw new Exception("Tipo de Documennto ERRONEO");
this.tipodoc = tipodoc;
}

public int getNumero() {
return numero;
}

public void setNumero(int numero) throws Exception{
if (String.valueOf(numero)==null )
throw new Exception("El Número de Docimento Debe tener Valor");
else
if(numero<=0)
throw new Exception("El Número de Documento Debe Mayor que cero");
this.numero = numero;
}

enum TipoDocumento{
DNI,
CI,
LC,
LI,
Pasaporte
};
static Vector v = new Vector();
int id;
String nombre, apellido;
TipoDocumento td;
String tipodoc;

int numero;
public Class3() {
out=new PrintWriter(System.out);
v.add(this);
this.id = v.lastIndexOf(this) + 1;
}

public void ingresar() {

out.println("¿Desea Ingreasa Valores?");
Leer leer=new Leer();
try {
while(Comparar.equals(Character.toUpperCase(leer.leerCaracter()),'S')) {
setNombre(leer.leerCadena());
setApellido(leer.leerCadena());
setTipodoc(leer.leerCadena());
setNumero(leer.leerEntero());
v.add(this);
}
}
catch(Exception e){
out.println(e.getMessage());
}

}

public void mostrar() {
Class3 c=new Class3();
for (Iterator i = v.iterator(); i.hasNext(); ) {
c = (Class3)i.next();
System.out.println(c.id + " " + c.getApellido() + " " +
c.getNombre() + " " + c.getTipodoc() + " " + String.valueOf(c.getNumero()));
}
}
public static void main(String args[]){
Class3 c=new Class3();
c.ingresar();
c.mostrar();
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder