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

請問BCB4.0 的chat 範例會產生例外的問題

答題得分者是:RaynorPao
LALRONE
一般會員


發表:2
回覆:2
積分:0
註冊:2002-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-14 19:32:48 IP:61.224.xxx.xxx 未訂閱
編譯 BCB4.0 的chat 範例時沒問題,執行時確發生 在CLIENT 按下Disconnect後,SERVER 會產生例外? 另外,TServerSocket 的事件 OnClientDisconnect 是發生在連線中斷之前還是之後?有人知道嗎?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-14 23:34:14 IP:61.221.xxx.xxx 未訂閱
引言: 編譯 BCB4.0 的chat 範例時沒問題,執行時確發生 在CLIENT 按下Disconnect後,SERVER 會產生例外? 另外,TServerSocket 的事件 OnClientDisconnect 是發生在連線中斷之前還是之後?有人知道嗎?
LALRONE 你好: 方便把你的程式碼貼上來嗎?? --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
LALRONE
一般會員


發表:2
回覆:2
積分:0
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-15 00:13:48 IP:61.224.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-15 00:30:45 IP:61.221.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-15 02:28:34 IP:61.216.xxx.xxx 未訂閱
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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-15 22:34:11 IP:61.221.xxx.xxx 未訂閱
LALRONE 你好: 呵呵~~有錯誤也是很正常的< > 像 > 所以~~也不必太在意啦< > --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-04-25 17:26:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!