SetverSocket和ClientSocket的奇怪現象? |
尚未結案
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
我使用SetverSocket和ClientSocket元件,寫一個簡單的傳遞資訊的程式.
但程式段在確認Server端是否有開啟,出現了一些錯誤.
底下為程式碼:
<textarea class="cpp" rows="10" cols="60" name="code">
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ServerSocket1->Port=100;
ServerSocket1->Active=true; ClientSocket1->Address="127.0.0.1";
ClientSocket1->Port=Edit2->Text.ToInt();
ClientSocket1->Active=true; if (ClientSocket1->Socket->Connected)
Memo1->Lines->Add("連線成功");
else
Memo1->Lines->Add("連線失敗");
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (ClientSocket1->Socket->Connected)
Memo1->Lines->Add("連線成功");
else
Memo1->Lines->Add("連線失敗");
}</textarea>
為什麼FormCreate時,都會出現"連線失敗"的訊息,正常應該要出現"連線成功"才對.
但一定要手動按下Button1才會出現"連線成功".
請問有誰可以跟我講為什麼會這樣呢?
判斷Server是否存在還有什麼比較好的方法呢?
謝謝.
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
我的經驗是Form在Create的時候,置於其上的一些VCL元件本身還未完成自身的建構(Construction),因此儘量不要在FormCreate的時候去做一些複雜元件的動作。
要不然就使用DATAMODULE把socket放在裡面,在FORM之前先CREATE起來後USES那個DATAMODULE後使用SOCKET。 |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
harpist
資深會員 發表:3 回覆:251 積分:430 註冊:2002-10-03 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |