当我读取socket

时间:2017-01-11 04:06:00

标签: java sockets

我是论坛新手,我需要解决一个我没有看到错误的问题,因为代码非常清晰

我有两个项目:Server&客户。在这两个中我都有序列化的类" ClaseServer"

package ser.des;
import java.io.Serializable;
import java.util.ArrayList;

public class ClaseServidor implements Serializable{

private static final long serialVersionUID = -73813883259606471L;

 String ip;
 int puerto;
 ArrayList<String> coleccion;

public ClaseServidor(){

    }

public ClaseServidor(String ip, int puerto, ArrayList<String> coleccion) {
    super();
    this.ip = ip;
    this.puerto = puerto;
    this.coleccion = coleccion;
}

public String getIp() {
    return ip;
}
public void setIp(String ip) {
    this.ip = ip;
}
public int getPuerto() {
    return puerto;
}
public void setPuerto(int puerto) {
    this.puerto = puerto;
}
public ArrayList<String> getColeccion() {
    return coleccion;
}
public void setColeccion(ArrayList<String> coleccion) {
    this.coleccion = coleccion;
}

}

班级&#34; hiloservidor&#34;负责接收请求以及我在哪里读取客户端发送的对象。

package servidor;
import java.io.BufferedReader;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketException;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;

public class hiloservidor extends Thread{

private Socket ss;
private int counter;

public hiloservidor(Socket i,int c){

    this.ss=i;
    this.counter=c;
}

    @Override
public void run(){

    try{
                    boolean done=false;

        System.out.println("hello client "+counter);


                    while(!done){

                        ObjectInputStream entrada = new ObjectInputStream(ss.getInputStream());
                                   System.out.println("reading....");
                        ClaseServidor cla = (ClaseServidor) entrada.readObject();

                        System.out.println("Done");


                    }

    }
    catch(Exception e){

    }
}

}

我发送对象的客户端类

package ser.des;
import java.io.File;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Scanner;


public class SerDes{

public static void main(String args[]){
    try {

        boolean salir=false;

        int i = 1;
        Socket cliente = new Socket("127.0.0.1",4890); 
        ArrayList<String>coleccion = new ArrayList<String>();
        coleccion.add("Libro1");
        coleccion.add("Libro2");
        coleccion.add("Libro3");
        coleccion.add("Libro4");
        coleccion.add("Libro5");
        coleccion.add("Libro6");

        ClaseServidor miServidor = new ClaseServidor( InetAddress.getLocalHost().getHostAddress(),15253,coleccion);


        while(salir==false){
                ObjectOutputStream msgToServer = new ObjectOutputStream(cliente.getOutputStream());
                System.out.println(InetAddress.getLocalHost().getHostAddress());
                msgToServer.writeObject(miServidor);
                msgToServer.flush();
                System.out.println("datos del servidor enviados");
                salir = true;
        }
    }
    catch(Exception e){

    }
}


}

问题出在&#34; readObject&#34;班级&#34; hiloservidor&#34;。 它可能是一个类&#34; ClaseServer&#34;问题,但我不确切地知道它是什么。如果你能帮助我......谢谢

0 个答案:

没有答案