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
چرا آخه :ناراحت:
من یک کلاس دارم به این صورت
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
چرا آخه :ناراحت: