各位高手好,小弟最近改用INDY元件實作TCP/IP
在DEBUG模式時,會發生錯誤,但在編譯成執行檔之後卻不會出現錯誤,請問這是什麼原因?? Server端
====================================================================
//--------------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//設定Mace Main連線到Directory Server的Server(傳送Serverlet清單用)
MM2DSServer->DefaultPort=6666;
//End
}
//--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender)
{
MM2DSServer->Active=True; //開啟
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MM2DSServerExecute(TIdPeerThread *AThread)
{
ServerletList->Items->Add("服務主機(IP):" AThread->Connection->Socket->Binding->PeerIP "服務程式:" AThread->Connection->ReadLn());
}
//--------------------------------------------------------------------------
Client端
====================================================================
//--------------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString CurrentDir,Serverletpath;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//設定Path
CurrentDir=GetCurrentDir();
Serverletpath=CurrentDir "\\..\\Serverlet\\"; //設定INDY元件port
MM2DSClient->Port=6666; //傳送Serverlet列表到Directory Server的port MM2MMClient->Port=7777; //Launcher port:7777
MM2MMServer->DefaultPort=7777; //Receiver Port:7777
//End MM2DSClient->Host="127.0.0.1";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TSearchRec Serverlet_result; //開啟Receiver的Server
MM2MMServer->Active=True;
//End MM2DSClient->Connect(3000); //連線到Directory Server Memo1->Text=Serverletpath; //DEBUG //找尋Serverlet子目錄下的所有Serverlet的執行檔
int FileFound=FindFirst(Serverletpath "*.exe",faAnyFile,Serverlet_result);
while(FileFound==0)
{
ServerletList->Items->Add(Serverlet_result.Name);
::Sleep(2);
MM2DSClient->WriteLn(Serverlet_result.Name);
::Sleep(2);
FileFound=FindNext(Serverlet_result);
}
FindClose(Serverlet_result); //Free fileresult
MM2DSClient->Disconnect(); //斷線
}
//---------------------------------------------------------------------------
請問這又是一個Bug嗎??還是我在Client端傳送WriteLn時處理有錯誤??
那要怎麼寫才會正常?? 發表人 - Gemi0305 於 2003/10/14 23:51:49