一个消息提示托盘程序的开发历程(采用socket技术,附源代码)二---服务端源代码[3]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 lcllcl987 的 blog

           string tastname;           //任务名称
           string creattime;          //时间
          
   while(!adoquery1->eof){
    messageid=adoquery1->fieldbyname("序号")->asstring;
    usrcode=adoquery1->fieldbyname("责任人")->asstring;
    tastname=adoquery1->fieldbyname("任务名称")->asstring;
    creattime=adoquery1->fieldbyname("时间")->asstring;
    msg->msgtype=0xc;
    memcpy(msg->messageid,messageid.c_str(),messageid.length()+1);
    memcpy(msg->usrcode,usrcode.c_str(),usrcode.length()+1);
    memcpy(msg->tastname,tastname.c_str(),tastname.length()+1);
    memcpy(msg->creattime,creattime.c_str(),creattime.length()+1);
    //对客户端发消息:
    for(int i=0;i<serversocket1->socket->activeconnections;i++){
        //serversocket1->socket->connections[i]->sendbuf(msg,94);
        serversocket1->socket->connections[i]->sendbuf(msg,244);
        sleep(1);
     }
    adoquery1->next();
    }
    msg->msgtype=0xd;     //结束符号
    for(int i=0;i<serversocket1->socket->activeconnections;i++){
        //serversocket1->socket->connections[i]->sendbuf(msg,94);
          serversocket1->socket->connections[i]->sendbuf(msg,244);
          sleep(1);  //停1ms很关键
     }
    delete msg;
    }else{
    timer1->enabled=false;
    }
    }
    catch(...){
      application->messagebox("访问数据库错误!请重新启动程序。",null,mb_ok);
      application->terminate();
    }
}

//---------------------------------------------------------------------------

void __fastcall tform1::serversocket1clienterror(tobject *sender,
      tcustomwinsocket *socket, terrorevent errorevent, int &errorcode)
{
        errorcode=0;
}
//---------------------------------------------------------------------------

void __fastcall tform1::n2click(tobject *sender)
{
 application->terminate();      
}
//---------------------------------------------------------------------------

void __fastcall tform1::n3click(tobject *sender)
{
formabout->showmodal();
}
//---------------------------------------------------------------------------


unit1.h

//---------------------------------------------------------------------------

#ifndef unit1h
#define unit1h
//---------------------------------------------------------------------------
#include <classes.hpp>
#include <controls.hpp>
#include <stdctrls.hpp>
#include <forms.hpp>
#include <comctrls.hpp>
#include <extctrls.hpp>
#include <scktcomp.hpp>
#include <adodb.hpp>
#include <db.hpp>
#include <dbgrids.hpp>
#include <grids.hpp>
#include <menus.hpp>
//---------------------------------------------------------------------------
class tform1 : public tform
{
__published: // ide-managed components
        tserversocket *serversocket1;
        tpanel *panel1;
        tbutton *btnlisten;
        tbutton *btndisconnect;
        tstatusbar *statusbar1;
        tadoconnection *adoconnection1;
        tadoquery *adoquery1;
        tdbgrid *dbgrid1;
        tdatasource *datasource1;
        ttimer *timer1;
        tadoquery *adoquery2;
        tgroupbox *groupbox1;
        tmainmenu *mainmenu1;

本文关键:一个消息提示托盘程序的开发历程(采用socket技术,附源代码)二---服务端源代码
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top