啥?RMI用来传输数据的吗?远程调用而已吧.

解决方案 »

  1.   

    不是说RMI下面有输入输出流可以传数据吗???
      

  2.   

    给你个例子http://www.flashman.com.cn/UploadFiles/2004-10-12/20041012171027246.rar
      

  3.   

    // 客户端主程序
    public class ClientApplet extends javax.swing.JApplet {
        public void init() {
            getContentPane().add(new Telephone.QueryPanel(this));
        }
    }
      

  4.   

    // 服务端主程序
    import Telephone.*;public class ServerApplication {
        // 常量定义(JDBC驱动程序的全名)
        final static String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";    // 主程序
        public static void main(String args[]) {
            try {
                // 装载JDBC驱动程序
                Class.forName(JDBC_DRIVER);
                // 创建伺服对象
                CallManagerImplementation manager = new CallManagerImplementation();
                // 用对象标识CallManager注册伺服对象
                java.rmi.Naming.rebind("CallManager", manager);
            } catch(Exception exc) {
                exc.printStackTrace();
            }
            System.out.println("服务程序已准备就绪 ...");
        }
    }
      

  5.   

    // 通话记录管理器的对象接口
    package Telephone;
    import Database.*;
    public interface CallManagerInterface extends java.rmi.Remote {
        // 根据顾客姓名subscriber查询通话记录,返回查询结果的二维表数据模型
        public Database.DatabaseTableModel getCallHistory(String subscriber)
            throws java.rmi.RemoteException;
    }// 通话记录管理器的对象实现
    package Telephone;public class CallManagerImplementation
        extends java.rmi.server.UnicastRemoteObject
        implements CallManagerInterface
    {
        // 常量定义(对象实现所访问的ODBC数据源名字)
        protected final String DATA_SOURCE = "jdbc:odbc:Telephone";
        // 属性定义
        protected Database.DatabaseAccess database;    // 提供数据库访问方法的对象    // 构造方法,注意必须抛出RemoteException异常
        public CallManagerImplementation() throws java.rmi.RemoteException {
            database = new Database.DatabaseAccess(DATA_SOURCE);
        }
        // 根据顾客姓名subscriber查询通话记录,实现远程接口指定的方法
        public synchronized Database.DatabaseTableModel getCallHistory(String subscriber)
            throws java.rmi.RemoteException
        {
            System.out.println("处理客户请求:" + subscriber);
            try {
                String sql = "QueryBySubscriber('" + subscriber + "')";
                java.sql.ResultSet rs = database.callQuery(sql);
                return new Database.DatabaseTableModel(rs);
            } catch(java.sql.SQLException exc) {
                exc.printStackTrace();
            }
            return null;
        }
    }
      

  6.   


    你的client和server通过什么连的?
    如果是socket,那找错方向了,去查找有关流的知识,看看如果通过socket进行数据传输