請問BCB4.0 的chat 範例會產生例外的問題 |
答題得分者是:RaynorPao
|
LALRONE
一般會員 發表:2 回覆:2 積分:0 註冊:2002-06-27 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 編譯 BCB4.0 的chat 範例時沒問題,執行時確發生 在CLIENT 按下Disconnect後,SERVER 會產生例外? 另外,TServerSocket 的事件 OnClientDisconnect 是發生在連線中斷之前還是之後?有人知道嗎?LALRONE 你好: 方便把你的程式碼貼上來嗎?? --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
LALRONE
一般會員 發表:2 回覆:2 積分:0 註冊:2002-06-27 發送簡訊給我 |
RaynorPao 兄 : 您好! 節錄程式片段如下 這是BCB4.0 內附的 chat 範例
C:\Program Files\Borland\CBuilder4\Examples\Internet\Chat
void __fastcall TChatForm::ServerSocketClientDisconnect(TObject *Sender,
TCustomWinSocket *Socket)
{
ServerSocket->Active = false;
FileListenItem->Checked = !FileListenItem->Checked;
FileListenItemClick(NULL);
}
void __fastcall TChatForm::FileListenItemClick(TObject *Sender)
{
FileListenItem->Checked = !FileListenItem->Checked;
if (FileListenItem->Checked)
{
ClientSocket->Active = false;
ServerSocket->Active = true;
StatusBar1->Panels->Items[0]->Text = "Listening...";
}else
{
if (ServerSocket->Active){ ServerSocket->Active = false;}
StatusBar1->Panels->Items[0]->Text = "";
}
} 這個範例由 server 端斷線沒問題,但由client 端斷線則 server 端
會產生例外.(似乎是存取的winsocket 指位器,指向已經free 的記憶體) 我沒有 bcb 5.0 and 6.0 不知各網友有這樣的情況發生嗎?
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: RaynorPao 兄 : 您好! 節錄程式片段如下 這是BCB4.0 內附的 chat 範例 C:\Program Files\Borland\CBuilder4\Examples\Internet\Chat void __fastcall TChatForm::ServerSocketClientDisconnect(TObject *Sender, TCustomWinSocket *Socket) { ServerSocket->Active = false; FileListenItem->Checked = !FileListenItem->Checked; FileListenItemClick(NULL); } void __fastcall TChatForm::FileListenItemClick(TObject *Sender) { FileListenItem->Checked = !FileListenItem->Checked; if (FileListenItem->Checked) { ClientSocket->Active = false; ServerSocket->Active = true; StatusBar1->Panels->Items[0]->Text = "Listening..."; }else { if (ServerSocket->Active){ ServerSocket->Active = false;} StatusBar1->Panels->Items[0]->Text = ""; } } 這個範例由 server 端斷線沒問題,但由client 端斷線則 server 端 會產生例外.(似乎是存取的winsocket 指位器,指向已經free 的記憶體) 我沒有 bcb 5.0 and 6.0 不知各網友有這樣的情況發生嗎?LALRONE 你好: 我試過了那個範例程式 並不會有你說的錯誤發生 備註: 我的測試環境是 > --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
LALRONE
一般會員 發表:2 回覆:2 積分:0 註冊:2002-06-27 發送簡訊給我 |
RaynorPao 兄 : 您好! 我知道程式錯在那裡 BCB4.0 內附的 chat 範例真是錯誤範例!! 經與友人的聯絡(他有bcb 5.0) , 經過比對 main.cpp 檔
與 bcb 5.0 的 main.cpp 檔有多處更動,本人所懷疑程式
錯誤處在bcb 5.0的 chat 範例已經修正. 謝謝您的測試! (真不敢相信內附的範例是錯的) 終於可以安心的睡覺, Borland 用這種方法提升用戶除錯
的能力,真是一絕...(scktcomp.pas 近 2000行, pascal
看不太習慣, 只能說 VCL 包裝與揉合 SOCKET API非常的妙) 一個 BORLAND 忠實又倒楣的用戶的感受. 如果天上可以掉下禮物,我希望是
--> Borland unicode solution for bcb 7.0 如果天上可以再掉下禮物,我希望是
--> VCL C 版 我想天上應該不會掉下禮物,至少短時間內不會....
所以睡覺去......
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |