線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1187
推到 Plurk!
推到 Facebook!

Windows Service & Clientsocket 問題

缺席
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-04 13:14:51 IP:220.130.xxx.xxx 未訂閱
請問各位,    我想用tservice,當run時,讓socket連線;並發現斷線時,自動連線...一直到service shoutdown時,才停止...請問要如何用呢? 我的service都一直無法run起來.     
 //---------------------------------------------------------------------------
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "trayicon"
#pragma resource "*.dfm"    TService1 *Service1;
//---------------------------------------------------------------------------
__fastcall TService1::TService1(TComponent* Owner)
        : TService(Owner)
{
}    TServiceController __fastcall TService1::GetServiceController(void)
{
        return (TServiceController) ServiceController;
}    void __stdcall ServiceController(unsigned CtrlCode)
{
        Service1->Controller(CtrlCode);
}
//---------------------------------------------------------------------------    void __fastcall TService1::ServiceExecute(TService *Sender)
{
   while(!Terminated)
   {
      ServiceThread->ProcessRequests(true);
      if(!ClientSocket1->Active) ClientSocket1->Active = true;
   }
}
//---------------------------------------------------------------------------    void __fastcall TService1::ServiceShutdown(TService *Sender)
{
   ClientSocket1->Close();
   TrayIcon1->Visible = false;
   delete ts;
}
//---------------------------------------------------------------------------    void __fastcall TService1::ServiceStart(TService *Sender, bool &Started)
{
   TIniFile *ini = new TIniFile("_nxngps.ini");
   IP = ini->ReadString("GGS","IP","192.168.1.8");
   delete ini;       ClientSocket1->Address = IP;
   ClientSocket1->Active = true;       ts = new TStringList;
}
//---------------------------------------------------------------------------    void __fastcall TService1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
   //send data...
}
//---------------------------------------------------------------------------    void __fastcall TService1::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
   SenderSN = 1;
   ts->Clear();
   TimerOut->Enabled = false;
   TimerHeart->Enabled = false;
}
//---------------------------------------------------------------------------
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-08 16:02:24 IP:61.222.xxx.xxx 未訂閱
發現到開不起來是 trayicon元件造成的, 想請問各位大大們,要如何才能做到service起來時, 視窗右下角有icon,按一個icon會出現選單呢?
系統時間:2024-05-09 19:42:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!