用java的tcp连接能传对象吗?比如我想传一个resultMetaData!!如果能,具体怎么做? 用ObjectInputStream/ObjectOutputStream能传实现Serializable接口的对象,ResultSetMetaData十有八九是不行的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 传Vector行:import java.io.*;import java.net.*;import java.util.Vector;public class TestSocketServer{ ServerSocket mServerSocket = null; Socket mSocket = null; DataInputStream dis = null; DataOutputStream dos = null; Vector mVector = null; public TestSocketServer() { try { mServerSocket = new ServerSocket(9009,15); mSocket = mServerSocket.accept(); dis = new DataInputStream(mSocket.getInputStream()); ObjectInputStream ois = new ObjectInputStream(dis); mVector = (Vector)ois.readObject(); for(int i = 0 ; i < mVector.size(); i ++) { System.out.println("输出:" + (String)mVector.elementAt(i)); } } catch(Exception eSocket) { } } public static void main(String [] args) { new TestSocketServer(); }} 客户端import java.io.*;import java.net.*;import java.util.Vector;public class TestSocketClient{ Socket mSocket = null; DataInputStream dis = null; DataOutputStream dos = null; Vector mVector = new Vector(5,1); public TestSocketClient(String [] args) { mVector.addElement("aa"); mVector.addElement("bb"); try { mSocket = new Socket("192.188.0.5",9009); dos = new DataOutputStream(mSocket.getOutputStream()); ObjectOutputStream oos = new ObjectOutputStream(dos); oos.writeObject(mVector); } catch(Exception eSocket) { } } public static void main(String [] args) { new TestSocketClient(args); }} 将ResultSet放入Vector中,可以传送!使Vector实现Serializable可序列化接口,然后使用ObjectOutputStream发送,使用ObjectInputStream接收。如果你使用数组传送会比较麻烦。我做过一个项目,但是是使用一个对数组扩展以后的类,但是使用起来不简单。 serializ 其实并不是那么好用, 真的要做的话, 还是自定义协议,直接传递数据. 当然可以传数组,SOCKET操作在连接后和IO操作没太大区别,witeObject(Object obj),将数组扔进去得了 我就是想传ResultMetaData谁给我一个好点的方法? 只要是serializable的对象都可以。 定义一个自己的类SerializableResultSetMetaData implements Serializable,在里面包括你想要的ResultSetMetaData的属性,然后传这个类的实例。 为什么不先把数据放到Vector或是它的子类(加上字段数等)中,它本身就实现Serializable接口,只要在另一端再读出来? io问题? ibatis使用时查看oracle数据库中v$process里session过多的问题 JTable 和 JScrollPane 的问题 新手问题,关于Netbeans下的GUI风格 请问AWT中的paint()方法是怎么实现自动调用的?实现原理是什么样子的? 请问这道题小题目怎么做(请想练手的看过来,有分) 关于UT斯达康面试 如何实现图片定时切换,并将其放入HTML页面中 一个小问题 怎样对一个文件进行随机的读出 关于抽象类的问题? java安全里面的PrivateKey和PublicKey是怎么初始化的??
import java.net.*;
import java.util.Vector;
public class TestSocketServer
{
ServerSocket mServerSocket = null;
Socket mSocket = null;
DataInputStream dis = null;
DataOutputStream dos = null;
Vector mVector = null;
public TestSocketServer()
{
try
{
mServerSocket = new ServerSocket(9009,15);
mSocket = mServerSocket.accept(); dis = new DataInputStream(mSocket.getInputStream());
ObjectInputStream ois = new ObjectInputStream(dis);
mVector = (Vector)ois.readObject();
for(int i = 0 ; i < mVector.size(); i ++)
{
System.out.println("输出:" + (String)mVector.elementAt(i));
}
}
catch(Exception eSocket)
{
}
} public static void main(String [] args)
{
new TestSocketServer();
}
}
import java.io.*;
import java.net.*;
import java.util.Vector;public class TestSocketClient
{
Socket mSocket = null;
DataInputStream dis = null;
DataOutputStream dos = null;
Vector mVector = new Vector(5,1);
public TestSocketClient(String [] args)
{ mVector.addElement("aa");
mVector.addElement("bb");
try
{
mSocket = new Socket("192.188.0.5",9009); dos = new DataOutputStream(mSocket.getOutputStream());
ObjectOutputStream oos = new ObjectOutputStream(dos);
oos.writeObject(mVector);
}
catch(Exception eSocket)
{
}
} public static void main(String [] args)
{ new TestSocketClient(args);
}
}
直接传递数据.
谁给我一个好点的方法?