java中使用socket可以传输对象吗? 就是使用socket对象在客户端和服务器端进行通信。不知道能不能传输对象,比如说字符串数组之类的。我知道的好像只能传送各种各样的字符串哦,如果不行的话,那图像之类的文件要怎么传送过来啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然可以了,不过都要将对象串行化处理,然后从传输两端进行ObjectInputStream和ObjectOutputStream处理。具体可以google一下,有很多文章说明串行化是如何进行的。http://www.diybl.com/course/shtiku/2007331/34045.html 这个网址提供了一个简单的例子,自己看看吧,很简单的 import java.net.*; import java.io.*; class ObjectServer{ public static void main(String[] args) throws IOException{ ServerSocket server=new ServerSocket(5918); Socket client=server.accept(); ObjectOutputStream out=new ObjectOutputStream(client.getOutputStream()); MyClass myObject=new MyClass(); out.writeObject(myObject); out.flush(); out.close(); } } //classOne============== imort java.io.*; public class MyClass implements Serializable{ private String str="ok"; private int i=10; private MyMember mySubObject=new MyMember(); public String getStr(){ return str; } public int getInt(){ return i; } public MyMember getSubObject(){ return mySubObject; } } //classOne's member================ import java.io.*; public class MyMember implements Serializable{ //the member var must implement Serializable private char[] myArray=new char[]{'a','b','c'}; public char[] getArray(){ return myArray; } } //client================ import java.io.*; import java.net.*; class ObjectClient{ public static void main(String[] args) throws Exception{ Socket client=new Socket("localhost",5918); ObjectInputStream in=new ObjectInputStream(client.getInputStream()); MyClass myObject=(MyClass)in.readObject(); System.out.println(myObject.getInt()); System.out.println(myObject.getStr()); char[] myArry=((MyMember)myObject.getSubObject()).getArray(); System.out.println(new String(myArry)); in.close(); } }==========================================转的高手贴,传对象好像要序列化,implements java.io.Serializable,我不懂,帮你顶 求助!java通讯录小程序! JAVA 菜鸟请教简单问题 你能知道只是为什么吗? 文件是否会自动关闭? 使用SAX解析xml文件,如果标签内容中有"<>"如何处理 最近在学java,想买本参考书。。。求大神们推荐几本。。 关于覆盖和隐藏的问题 多多给分哦:java的数据库查询问题 哪里可以下载idltojava?如果不用idltojava可以实现idl到java的转化, 帮忙解决下小问题! struts中使用logic:iterator和bean:write输出查询结果集的问题 一个关于newInstance简单的java小问题!!!
处理。具体可以google一下,有很多文章说明串行化是如何进行的。
http://www.diybl.com/course/shtiku/2007331/34045.html 这个网址提供了一个简单的例子,自己看看吧,很简单的
import java.io.*;
class ObjectServer{
public static void main(String[] args)
throws IOException{
ServerSocket server=new ServerSocket(5918);
Socket client=server.accept();
ObjectOutputStream out=new ObjectOutputStream(client.getOutputStream());
MyClass myObject=new MyClass();
out.writeObject(myObject);
out.flush();
out.close();
}
}
//classOne==============
imort java.io.*;
public class MyClass implements Serializable{
private String str="ok";
private int i=10;
private MyMember mySubObject=new MyMember();
public String getStr(){
return str;
}
public int getInt(){
return i;
}
public MyMember getSubObject(){
return mySubObject;
}
}
//classOne's member================
import java.io.*;
public class MyMember implements Serializable{ //the member var must implement Serializable
private char[] myArray=new char[]{'a','b','c'};
public char[] getArray(){
return myArray;
}
}
//client================
import java.io.*;
import java.net.*;
class ObjectClient{
public static void main(String[] args)
throws Exception{
Socket client=new Socket("localhost",5918);
ObjectInputStream in=new ObjectInputStream(client.getInputStream());
MyClass myObject=(MyClass)in.readObject();
System.out.println(myObject.getInt());
System.out.println(myObject.getStr());
char[] myArry=((MyMember)myObject.getSubObject()).getArray();
System.out.println(new String(myArry));
in.close();
}
}
==========================================
转的高手贴,传对象好像要序列化,implements java.io.Serializable,我不懂,帮你顶