ورود

View Full Version : خطا در cast کردن



bpzone
چهارشنبه 11 اسفند 1389, 16:43 عصر
با سلام

من یک کلاس دارم به این صورت



package Client;

public class ServerInfo implements java.io.Serializable{

private int port;
private String ip;

public ServerInfo() {
}

public String getIp() {
return ip;
}

public void setIp(String ip) {
this.ip = ip;
}

public int getPort() {
return port;
}

public void setPort(int port) {
this.port = port;
}
}



در یک کلاس دیگه یک آبجکت از اون رو بصورت زیر Write کردم


package LoadBalancing;

import java.io.*;
import java.net.*;

public class SendServerInfo extends Thread {

ServerInfo server;
Socket socket;
OutputStream out;

public SendServerInfo(Socket socket, ServerInfo server) {
this.server = server;
this.socket = socket;
}

@Override
public void run() {

try {
out = socket.getOutputStream();
ObjectOutputStream encoder = new ObjectOutputStream(out);
encoder.writeObject(server);

} catch (IOException e) {
System.out.println(" --- SendServerInfo 1 ---");
System.out.println(" --- " + e.getMessage() + " ---");
} finally {
try {
socket.close();
} catch (IOException ex) {
System.out.println(" --- SendServerInfo 2 ---");
System.out.println(" --- " + ex.getMessage() + " ---");
}
}
}
}



در یک کلاس دیگه میخواهم آبجکت رو بخونم بصورت زیر


package Client;

import java.io.*;
import java.net.*;

public class Client1 {

public static void main(String[] args) {

Socket s;
String ip = "127.0.0.1";
int port = 1230;
ServerInfo server = null;

try {

s = new Socket(ip, port);
InputStream in = s.getInputStream();
ObjectInputStream encoder = new ObjectInputStream(in);

try {
server = (ServerInfo) encoder.readObject();
System.out.println(server.getIp());
System.out.println(server.getPort() + "");
} catch (Exception e) {
System.out.println("Cast ServerInfo 2 ");
System.out.println(e.getMessage());
}

OutputStream ops = new FileOutputStream("D:\\Test\\2.pdf");
System.out.println("Connected to server...");
int num;
while ((num = in.read()) != -1) {
ops.write(num);
}
ops.close();
in.close();
s.close();

} catch (IOException e) {
System.out.println(" --- Client 1 ---");
System.out.println(" --- " + e.getMessage() + " ---");
}

}
}



اما در قسمت آخر ، خطای زیر رو گرفتم


LoadBalancing.ServerInfo cannot be cast to Client.ServerInfo


چرا آخه :ناراحت: