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

ServerSocket1ClientRead觸發執行問題

答題得分者是:aftcast
DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-05-05 10:42:48 IP:111.240.xxx.xxx 訂閱
Form中有ServerSocket1~ServerSocket5,這五個OnClientRead全部指到同一個ServerSocket1ClientRead程序,
假設某一個ServerSocket的ServerSocket1ClientRead正在服務執行中,有可能另一個ServerSocket岔入干擾嗎?
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-05-05 11:01:28 IP:210.64.xxx.xxx 訂閱
不會,除非你用的是block的模式(這模式難用,也很少人用)。

雖然是5個,但它都是由事件觸發而來,其實也是一個一個陸續而至,故沒有"重入"或干擾問題。可進一步參考我的部落格:

aftcast.pixnet.net/blog/post/28353995

===================引 用 DavidLo 文 章===================
Form中有ServerSocket1~ServerSocket5,這五個OnClientRead全部指到同一個ServerSocket1ClientRead程序,
假設某一個ServerSocket的ServerSocket1ClientRead正在服務執行中,有可能另一個ServerSocket岔入干擾嗎?
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-05-05 12:01:41 IP:111.240.xxx.xxx 訂閱
謝謝A大!
Timer1的OnTiemr也是事件觸發,好像會重入?
壹台電腦的程式\有5個ServerSoscket分別被其他5台電腦ClientSocket連接(為了區分是誰呼叫),
但OnClientRead共用同一個程序.
因偶爾發生異常!
必須想個辦法測試確認不會重入!
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-05-05 12:19:13 IP:210.64.xxx.xxx 訂閱
Timer 是不會重入的 !
而上面的原始問題,我極肯定的和你說是不會重入的! 因為是事件來的,該vcl 的source code我都研究過了。

不了你的異常是指什麼,但不會是因"重入"而造成! 或你把異常說明一下…

事件上若會有重入的情形,應該僅有一種情形,就是使用了PeekMessage/GetMessage或Application->ProcessMessage。

===================引 用 DavidLo 文 章===================
謝謝A大!
Timer1的OnTiemr也是事件觸發,好像會重入?
壹台電腦的程式\有5個ServerSoscket分別被其他5台電腦ClientSocket連接(為了區分是誰呼叫),
但OnClientRead共用同一個程序.
因偶爾發生異常!
必須想個辦法測試確認不會重入!
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2011-05-04 22:26:51, 註解 無‧
aftcast 重新編輯於 2011-05-04 22:37:56, 註解 無‧
DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-05-05 14:18:20 IP:111.240.xxx.xxx 訂閱
程式某些地方會用Application->ProcessMessage(),
Timer中也有用到.
所以我的程式會有重入情況!


但在ServerSocket的OnClientRead中沒用到.

異常訊息是一般SQL查詢失敗!(遺漏字元字串)


問題是沒人去按鍵查詢SQL,不定時自己會跑出來!
跑出來的時候,SQL指令字串組合不完整而出現的錯誤!

我懷疑是在OnClientRead中發生

DavidLo
高階會員


發表:17
回覆:225
積分:168
註冊:2004-07-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-05-09 10:01:25 IP:111.240.xxx.xxx 訂閱
現場測是要等,先結案!
有確認結果在放上來!
系統時間:2024-04-24 14:20:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!