设置http-equiv属性,具体怎么用,忘了,自己查吧

解决方案 »

  1.   

    把在线信息放到数据库,的确很多问题,比如客户端异常重启
    如果要做QQ那种功能我感觉需要软件支持,做成active控件问题好像也不少。
    关注
      

  2.   

    如果要想实现短信功能的话:
    首先,你要选择一台移动或者联通的短信服务器做你们的发送短信接口.这是最关键的一步,也是最底层的,当然这是需要much money的
    然后你就是在连接接口的服务器做技术了.用JAVA 的 SOCKET 来监听客户端的SOCKET,当然这是需要一定的难度,和普通是有很多的区别,例如每秒钟可以同时接受3000条SOCKET... ...,要进行客户端的认证.要进行数据流转输的加密... ...
    最后就是来处理客户端的发送SOCKET了,其实他们传输都是字节Byte...public class Client
    {
    //构造函数
    public Client()
    {
    connectStatus = false;
    loginStatus = false;
    default_ip = "";
    default_port = 0;
    default_user = "";
    default_password = "";
    connection = null;
    input = null;
    out = null;
    binput = null;
    }
    //连接函数public boolean connect(String ip, int port)
    {
    boolean result = false;
    if(ip == null || ip.indexOf(".") < 1)
    ip = default_ip;
    if(port < 1)
    port = default_port;
    try
    {
    connection = new Socket(ip, port);
    input = connection.getInputStream();
    binput = new BufferedInputStream(input);
    out = connection.getOutputStream();
    result = true;
    connectStatus = true;
    default_ip = ip;
    default_port = port;
    }
    catch(Exception e)
    {
    result = false;
    }
    return result;
    }//登录函数public int login(String userName, String password)
    {
    int loginRes = -1;
    if(!connectStatus)
    return 1;
    if(userName == null || userName.trim().equals(""))
    return 24;
    byte loginData[] = new byte[43];
    setIntData(43, loginData, 0);
    setIntData(1, loginData, 4);
    setIntData(1, loginData, 8);
    userName.getBytes(0, userName.length(), loginData, 12);
    password.getBytes(0, password.length(), loginData, 22);
    loginData[38] = 1;
    setTime((new Date()).getTime() / (long)1000, loginData, 39);
    try
    {
    out.write(loginData);
    out.flush();
    byte rec[] = new byte[30];
    char ret = '\0';
    int i = 0;
    do
    {
    if(i >= 400)
    break;
    if(binput.available() > 0)
    {
    input.read(rec, 0, 30);
    ret = (char)rec[12];
    break;
    }
    Thread.sleep(50L);
    i++;
    } while(true);
    if(ret == 'T')
    {
    loginStatus = true;
    default_user = userName;
    default_password = password;
    int k = 0;
    return k;
    }
    loginRes = 1;
    }
    catch(Exception e)
    {
    int j = 1;
    return j;
    }
    return loginRes;
    }//发送函数public int submit(String servicer_id, int msg_type, int status_report, String src_addr, String dest_addr, String schedule, String expire, 
    int msg_fmt, byte msg_content[], String fee_type, String fee_code, String fee_mobile, String fee_by, int pid)
    {
    int subRes = -1;
    if(!connectStatus || !loginStatus)
    return 1;
    byte submitData[] = new byte[264];
    setIntData(264, submitData, 0);
    setIntData(4, submitData, 4);
    setIntData(1, submitData, 8);
    servicer_id.getBytes(0, servicer_id.length(), submitData, 12);
    submitData[22] = (byte)msg_type;
    submitData[23] = (byte)status_report;
    if(src_addr == null || src_addr.trim().length() < 1)
    return 14;
    src_addr.getBytes(0, src_addr.length(), submitData, 24);
    if(dest_addr == null || dest_addr.trim().length() < 1)
    return 15;
    dest_addr.getBytes(0, dest_addr.length(), submitData, 45);
    if(schedule != null && schedule.trim().length() > 1 && !setTime(schedule, submitData, 66))
    return 16;
    if(expire != null && expire.trim().length() > 1 && !setTime(expire, submitData, 70))
    return 17;
    submitData[74] = (byte)msg_fmt;
    submitData[75] = (byte)msg_content.length;
    System.arraycopy(msg_content, 0, submitData, 76, msg_content.length);
    fee_type.getBytes(0, fee_type.length(), submitData, 236);
    fee_code.getBytes(0, fee_code.length(), submitData, 244);
    if(fee_mobile != null && fee_mobile.trim().length() > 11)
    fee_mobile = fee_mobile.substring(2);
    fee_mobile.getBytes(0, fee_mobile.length(), submitData, 250);
    fee_by.getBytes(0, 2, submitData, 261);
    if(pid < 0 || pid > 256)
    pid = 0;
    submitData[263] = (byte)pid;
    boolean reSend = false;
    try
    {
    out.write(submitData);
    out.flush();
    }
    catch(Exception e)
    {
    reSend = true;
    }
    if(reSend)
    {
    int sendTimes = 0;
    do
    {
    if(sendTimes >= 2)
    break;
    try
    {
    connect(default_ip, default_port);
    login(default_user, default_password);
    out.write(submitData);
    out.flush();
    reSend = false;
    break;
    }
    catch(Exception exception)
    {
    sendTimes++;
    }
    } while(true);
    }
    if(reSend)
    {
    connectStatus = false;
    loginStatus = false;
    return 1;
    }
    try
    {
    byte sub[] = new byte[17];
    char sRet = '\0';
    int i = 0;
    do
    {
    if(i >= 1500)
    break;
    if(binput.available() > 0)
    {
    input.read(sub, 0, 17);
    sRet = (char)sub[16];
    break;
    }
    Thread.sleep(10L);
    i++;
    } while(true);
    if(sRet == 'T')
    subRes = 0;
    else
    subRes = 11;
    }
    catch(Exception e)
    {
    subRes = 1;
    }
    return subRes;
      

  3.   

    如果有什么问题的话可以跟我发邮件。[email protected]