请问在java中,怎样用socket传送一个已经串行化的对象

iamok 2005-03-21 11:50:18
如题目
用socket传一个串行化的对象,还有服务器端怎么接受这个对象?
...全文
226 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gtwdaizi 2005-08-31
  • 打赏
  • 举报
回复
这个帖子我怎么运行不成功啊。客户端输入get stream后就没有反应了,这是怎么回事啊???
vgvg 2005-03-21
  • 打赏
  • 举报
回复


楼上的回答的真详细
GJA106 2005-03-21
  • 打赏
  • 举报
回复
import java.io.*;
import java.net.*;
import java.net.ServerSocket;
import java.util.Vector;

public class ObjectServer {
ServerSocket ss=null;
Socket s=null;
ObjectInputStream inStream=null;
ObjectOutputStream outStream=null;
FileInputStream fin = null;
ObjectObj obj = null;
Vector vector = new Vector(2);

public ObjectServer() {
try{
ss=new ServerSocket(7650);
// s.setSoTimeout(3000);
obj = new ObjectObj();
obj.setID(1);
obj.setName("wukesong");
vector.add(obj);
ObjectObj obj2 = new ObjectObj();
obj2.setID(5);
obj2.setName("asdfasdfasd");
vector.add(obj2);
}catch(Exception e){
e.printStackTrace();
}
}

void waitForClient(){
try{
while(true){
s=ss.accept();
System.out.println("已经连接");
outStream=new ObjectOutputStream(s.getOutputStream());
this.inStream = new ObjectInputStream(s.getInputStream());
System.out.println("已经连接2");
outStream.writeObject(vector);
outStream.flush();
Thread.sleep(1000);

}
}catch(Exception e){
e.printStackTrace();
}
}

public static void main(String[] args)
{
ObjectServer socketServer1 = new ObjectServer();
socketServer1.waitForClient();
}
}
GJA106 2005-03-21
  • 打赏
  • 举报
回复
import java.net.*;
import java.io.*;
import java.util.*;

public class ObjectClient{
Socket socket=null;
DataInputStream inStream=null;
DataOutputStream outStream=null;
FileOutputStream fout = null;

public ObjectClient() {
try{
System.out.println("connection request...");
socket=new Socket("192.168.0.173",7650);
System.out.println("connection OK");
ObjectInputStream oin = new ObjectInputStream(socket.getInputStream());
System.out.println("get stream...");
//socket.setSoTimeout(3000);
Vector vector = (Vector)oin.readObject();
int size = vector.size();
System.out.println("大小 :"+vector.size());
for(int i=0;i<size;i++)
{
ObjectObj obj = (ObjectObj)vector.get(i);
System.out.println("id="+obj.getID()+"");
System.out.println("name="+obj.getName());

}
oin.close();
socket.close();

}catch(Exception e){
e.printStackTrace();
}
}

public static void main(String[] args) {
ObjectClient socketClient1 = new ObjectClient();
}
}
iamok 2005-03-21
  • 打赏
  • 举报
回复
谢谢GJA106(中文字符)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧