ft,当然有socket了,要不然客户端怎么连的上

解决方案 »

  1.   

    package htjs.msg;import java.sql.*;
    import java.lang.*;
    import java.util.*;
    import htjs.basic.*;
    import htjs.database.*;
    import htjs.include.*;
    import htjs.basic.OutString;
    import htjs.database.DB_link;/**
     *  短信模块.
     * <p>CreateTime:2003-7-6
     * @author Avenger
     * @version 1.0
     */public class Message extends htjs.database.DB_link {  private String sqlStr=new String();
      ResultSet rs=null;
      boolean zxbz=false;
      OutString os=new OutString();  /**
       * 构造函数
       * @throws SQLException
       */
      public Message() throws SQLException {  }
      /**
       * 得到人员列表
       * @return 执行成功返回人员结果集,否则返回NULL
       */
      public ResultSet getRy() {
        try {
          sqlStr="select * from users";
          openConnect();
          rs=executeQuery(sqlStr);
        } catch (Exception e) {
          System.out.println(e.getMessage());
          rs=null;
        } finally {
          return rs;
        }
      }  /**
       * 信息发送
       * @param fsdw 发送单位
       * @param fsr  发送人
       * @param xxbt 信息标题
       * @param xxnr 信息内容
       * @param jsr  接收人 alluser表示全部
       * @param hzbz 信息回执
       * @return 执行成功TRUE,否则返回FALSE
       */
      public boolean SendMsg(String fsdw,String fsr,String xxbt,String xxnr,String jsr,String HzBz) {
        try {
    zxbz=false;
    xxbt=os.reconvert(xxbt);
    xxnr=os.reconvert(xxnr);
    openConnect();
    if (jsr.compareTo("alluser")==0)
    {
    sqlStr="insert into sys_message (fsdw,fsr,xxbt,xxnr,jsdw,jsr,hzbz) select '"+fsdw+"','"+fsr+"','"+xxbt+"','"+xxnr+"',ksbm,yhbm,"+HzBz+" from users";
    }else
    {
    rs=executeQuery("select ksbm from users where yhbm='"+jsr+"'");
    rs.next();
    sqlStr="insert into sys_message (fsdw,fsr,xxbt,xxnr,jsdw,jsr,hzbz) values('"+fsdw+"','"+fsr+"','"+xxbt+"','"+xxnr+"','"+rs.getString("ksbm")+"','"+jsr+"',"+HzBz+")";
    rs.close();
    }
          
          executeQuery(sqlStr);
      zxbz=true;
        } catch (Exception e) {
          System.out.println(e.getMessage());  
      zxbz=false;
        } finally {
          return zxbz;
        }
      }  /**
       * 读取短信息列表
       * @param yhbm 用户编码
       * @return 执行成功返回结果集,否则返回NULL
       */
      public ResultSet getMsg(String yhbm) {
        try {      
          sqlStr="select A.ROWID,A.FSR,A.XXBT,A.FSSJ,A.JSBZ,B.MC||' ' as mc from sys_message A,USERS B where A.FSR=B.YHBM(+) AND A.jsr='"+yhbm+"' order by A.fssj DESC";
         openConnect();
          rs=executeQuery(sqlStr);
        } catch (Exception e) {
          System.out.println(e.getMessage());
          rs=null;
        } finally {
          return rs;
        }
      } /**
       * 读取短信息列表
       * @param id 记录ID
       * @return 执行成功返回结果集,否则返回NULL
       */
      public ResultSet ViewMsg(String id) {
        try {      
     openConnect();
      sqlStr="insert into sys_message (fsdw,fsr,xxbt,xxnr,jsdw,jsr,hzbz) select jsdw,jsr,'"+os.reconvert("自动回执")+"-'||xxbt,'"+os.reconvert("信息已阅读")+"',fsdw,fsr,0 from sys_message where rowid='"+id+"' and jsbz=0 and hzbz=1";
      executeQuery(sqlStr);
      sqlStr="update sys_message set jssj=sysdate,jsbz=1 where rowid='"+id+"'";
          executeQuery(sqlStr);
          sqlStr="select A.ROWID,A.FSR,A.XXBT,A.XXNR,A.FSSJ,B.MC||' ' as mc from sys_message A,USERS B where A.FSR=B.YHBM(+) AND A.ROWID='"+id+"'";
          
          rs=executeQuery(sqlStr);
        } catch (Exception e) {
          System.out.println(e.getMessage());
          rs=null;
        } finally {
          return rs;
        }
      }
    /**
       * 读取短信息列表
       * @param sj 记录ID串
       * @return 执行成功TRUE,否则返回FALSE
       */
    public boolean DelMsg(String id) {
    try {
    zxbz=false;
       openConnect();
    StringTokenizer stSj = new StringTokenizer(id,";;;");
    String arySql[] = new String[stSj.countTokens()];
    String strID="";
    int intI=0;
    while (stSj.hasMoreTokens()) 
    {
    strID=stSj.nextToken();
    arySql[intI]="delete from sys_message where rowid='" + strID + "'";
    intI++;
    }
    executeQuery(arySql);
        } catch (Exception e) {
          System.out.println(e.getMessage());
          zxbz=false;
        } finally {
          return zxbz;
        }
      }  /**
       * 得到SQL语句(调试时使用的方法)
       */
      public String getSQL() {
        return sqlStr;
      }}
      

  2.   

    通过连接判断连上的IP,如果是客户端的,则getOutputStream()后用write()