可以。  
首先得以用户管理系统为基础,给每个用户分配一个帐号(没有帐号就不知道短消息给谁)  
然后得有一个表用来存放短消息数据。里面至少得有四个字段(ID,to,from,content,isread)ID是自增,to是收信人,from是发信人,content是内容,time是发送时间,isread是是否已读标识(可设置0为未读,1为已读)  
要发送消息实际上就是插入一个数据,此时isread==0.当收信方检查到有isread==0的消息时就给出提示,然后读取数据,并更新isread==1。这样就实现了最最基本的短消息功能。在此基础上可以加上做标记,收件箱,发件箱,附件等等功能。  
---------------------------------------------------------------  
 
发送就是插入数据。  
你可以在页面中嵌入一个隐藏的frame,然后隔几秒刷新一次,检查数据库中是否有新的短消息。  
---------------------------------------------------------------  
 
发送出去就是在表中加一个未读记录,isread  字段值标记未读。  
当用户登录或是有活动时,select这张表中touser字段中是否有跟登录名相同且isread字段为未读的记录,有则显示有未讯消息,当打开某条新消息时置isread为否  设置一个隐藏的iframe,然后不断地刷新这个ifram--读取数据库中的用户消息表,在用户消息表中设置一个flag标示,用来判断是否已读,未读的话就谈出一个消息窗口,显示消息就行了.  

解决方案 »

  1.   

    可以采用不刷新iframe的方式,使用XMLHTTP的方式。 不是不停的刷新iframe,而是通过XMLHTTP发送请求察看,然后改变页面的内容。
    如:
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.open( "GET", "/servlet/XXX?s=1);
    xmlhttp.send();
    form1.aaa.text=xmlhttp.responseText;
      

  2.   

    csdn是刷页面的,据说是保存在xml文件里
      

  3.   

    可以考虑一下用户间通讯的方法,比如那个Application。没用过,说说而已,不敢肯定。
      

  4.   

    CSDN的实现方式:每秒钟刷新本页面(黑色条)
    <meta http-equiv="Refresh" content="1000;URL=/expert/deeptree/contentbar.asp?myie=ie">
      

  5.   

    假如了解HTTP的工作原理的话
    就不会说刷新很麻烦,
    至于效率问题,可以在服务器端优化的
      

  6.   


    <html>
    <head>
    <meta http-equiv="Refresh" content="1000;URL=/expert/deeptree/contentbar.asp?myie=ie">
    <META NAME="Robots" CONTENT="noindex">
    <meta content="text/html;charset=gb2312" http-equiv="Content-Type">
    <meta name="MSSmartTagsPreventParsing" content="TRUE">
    <meta http-equiv="MSThemeCompatible" content="Yes">这是CSDN的代码