当前位置:  技术问答>java相关

如何通过Socket传输对象?

    来源: 互联网  发布时间:2015-08-19

    本文导语:  有一个Vector v对象,需要通过Socket从客户端传给服务器端,服务器端再把它还原为Vector。该如何实现呢? | //server import java.net.*; import java.io.*; class ObjectServer{ public static void main(String[] arg...

有一个Vector v对象,需要通过Socket从客户端传给服务器端,服务器端再把它还原为Vector。该如何实现呢?

|
//server
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();
}
}

|
把传输对象序列化,你Vector中的对象能序列化吗?

|
Vector vec = new Vector();
vec.add("你的对象");
try{
   ObjectOutputStream oos = new ObjectOutputStream(res.getOutputStream());
   oos.writeObject(vec);
   oos.flush();
   oos.close();
}catch(IOException e){
   throw new ServletException("Failed to return.",e);
}
看看这段代码有什么启发.res.getOutputStream())其中的res是Response对象

|
Please try the "Java Serialization for XML"

http://freshmeat.net/projects/jsx/?topic_id=868%2C45%2C50%2C19%2C866

Java Serialization for XML (JSX) enables all objects to be written and read as XML, using Java's standard Serialization API.

The receiver can validate if the received the XML message is complete.


|
还原不用等到全部接收完毕啊,ObjectInputStream.readObject()在没接收完时是阻塞的。

|
就不用socket传输沙!用rmi非常简单

|
学习!

|
可以用rmi实现,另外还要看你的Vector中存储的对象是什么类型的?

|
对象需要序列化!!!!!!!!!!!,也就是implements java.io.Serializable

    
 
 

您可能感兴趣的文章:

  • Session id实现通过Cookie来传输方法及代码参考
  • linux 下如何图片如何通过socket传输?
  • LINUX下如何通过电话线传输数据
  • 请教一个完整的linux下通过串口传输各种文件的源码,多谢!
  • 用Shell怎样实现两台主机通过ftp文件传输
  • 请教脚本中如何判断文件是否通过ftp传输成功问题
  • 怎样通过dom实现xml文档之间的数据传输
  • 磁盘控制器是通过DMA来传输数据的?
  • 怎样判断一个对象是通过什么类实例化出来的?
  • 如何通过菜单切换同一对象下jpanel。有何方法,如果有代码示范,就更好了
  • Jquery通过JSON字符串创建JSON对象
  • 请问如何通过Session对象判断这个session是否已经不合法?
  • LINUX下如何通过电话线传输数据 iis7站长之家
  • 请教如何通过sessionId得到session对象,并使之失效。
  • 在linux下如何通过动态链接库调用对象?
  • 我是初学者,问一个比较傻的问题:既然JAVA是一种纯面向对象的语言,那么为什么int i=new int()或int i=new int(1)不能通过编译?谢谢。
  • 大家对绘图技术不感兴趣嘛!那就讨论一下网络吧!请问如何通过http访问远程对象。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php通过socket_bind()设置IP地址代码示例
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • kjava能不能通过socket连接服务器
  • socket下怎么监控通过主机的所有的包
  • 高分:有那位大大虾知道通过Socket得到服务器的类型,等等
  • 通过socket和asp打交道
  • linux与java如何通过socket传float类型
  • vc通过socket发送数据给java的问题
  • 通过socket连接一次性发送大数据量的问题
  • 客户端是linux通过socket编程实现服务器端win平台接收?
  • 求Servlet与applet通过socket通讯,相关资料或源码,网址都行!谢谢啦。
  • 请问怎么通过Socket发送一个int数值?急,谢谢!!
  • 通过socket得到自己的ip地址
  • 同多个线程通过同一个socket发送数据,操作系统底层会同步每个发送操作吗
  • 怎么能接收通过socket传来的中文数据呢?我如果用BufferReader的话socket连接就无效了
  • 请教:arm开发板与pc通过wifi连接能ping通但无法socket通信
  • 200分!!嵌入式Linux下通过TCP访问服务器,Socket被服务器重置,错误号104??(高手请进)解决后加送100分!!!
  • 为什么通过socket会丢数据?
  • 通过Socket通信处理XML时遇到的问题,请指教
  • 通过socket,自编程识别http协议数据
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • applet可以不通过数字签名,通过设置IE直接在本地访问本地文件吗
  • 通过javascript库JQuery实现页面跳转功能代码
  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • 紧急求救!能通过jdbc怎样连接sqlsever 然后通过 for xml 关键字得到xml流吗?
  • linux下通过crond实现自动执行程序
  • 我想我的网站屏蔽掉通过某些网站过来的访问,我想通过htaccess 文件来做,请大家帮帮我。
  • 通过docker commit命令保存对docker容器的修改
  • 如何通过INTERNET访问通过共项一条线路上网的局域网中的机器???


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3