全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2103
推到 Plurk!
推到 Facebook!

SocketConnect如果沒有做close的動作會出錯嗎?謝謝

答題得分者是:暗黑破壞神
macchen
初階會員


發表:66
回覆:102
積分:33
註冊:2006-07-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-07 17:34:37 IP:211.75.xxx.xxx 訂閱
各位請問一下,如果我使用了SocketConnect(以下簡稱sc)但是在程式結束之後沒有做close的動作,請問會對程式有什麼不良的影響嗎?因為會沒有做close的動作是因為,程式在執行完畢,按下結束的按鈕之後,在win2000的os下有時程式會hold在sc.close然後程式就會變成無回應,但是最近在試時,先將sc不做close的動作,發現好像不會出現hold住的現象,但是不知會不會對程式或是資料庫造成什麼不良的影響,麻煩各位知道的指導一下,謝謝。
------
DELPHI初學者
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-07 22:54:21 IP:211.22.xxx.xxx 未訂閱
我覺得這個問題很奇怪~
Socket使用完畢本來就該關閉的,為何不關?你的問題應該是做到如何防止Socket未妥善關閉,而不是不關閉會怎樣?!
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-07 23:00:48 IP:218.170.xxx.xxx 未訂閱
呵。這個問題是很奇怪,但是遇過的都知道。
socket 連線中關閉程式。沒問題。
socket 連線中,傳輸中,關閉程式。有時候會有”關不起來”的情況。
他問的是如果第二種情況怎麼辦。如果沒關係,那就大不了用手動工作管理員處理。

其實,它的問題在 socket 連線傳送。它用到了 thread 的觀念。
你可以自己去加上 flag 來判斷它目前的情況。
在退出程式時。務必等到 flag 都回到關閉再退出,就沒問題了。
macchen
初階會員


發表:66
回覆:102
積分:33
註冊:2006-07-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-08 09:16:17 IP:211.75.xxx.xxx 訂閱
先謝謝二位版大的回覆,我知道問這個問題很奇怪,這是因為我不清楚close會做什麼動作,而不清楚為什麼軟體會在sc做close時會hold住,所以才會問這個問題,而我的情況應該是版大說的第二種情況,因為要請客戶手動去關掉可能客戶會覺的軟體的穩定性不夠,再請問一下,就是版大說的「你可以自己去加上 flag 來判斷它目前的情況。
在退出程式時。務必等到 flag 都回到關閉再退出,就沒問題了。」這個是要如何實做呢?是要修改那邊才能知道socketconnection是否已正常關閉後,才讓程式做關閉的動作,麻煩版大指導一下,謝謝。
因為delphi上的說明也不是很清楚該如何判斷是否已正常做close的動作,只說當sc不使用時,做close的動作就會釋放掉所有的connect,謝謝。
===================引 用 暗黑破壞神 文 章===================
呵。這個問題是很奇怪,但是遇過的都知道。
socket 連線中關閉程式。沒問題。
socket 連線中,傳輸中,關閉程式。有時候會有”關不起來”的情況。
他問的是如果第二種情況怎麼辦。如果沒關係,那就大不了用手動工作管理員處理。

其實,它的問題在 socket 連線傳送。它用到了 thread 的觀念。
你可以自己去加上 flag 來判斷它目前的情況。
在退出程式時。務必等到 flag 都回到關閉再退出,就沒問題了。
------
DELPHI初學者
macchen
初階會員


發表:66
回覆:102
積分:33
註冊:2006-07-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-08 10:13:59 IP:211.75.xxx.xxx 訂閱
謝謝版大的回覆,應該是你說的這樣沒錯,因為我不知道要如何才能得知close到底有沒有釋放掉所有的connect,因為程式會一直hold住,而且使用try也無法攔到訊息,才會想問一下如果沒有做close的動作會有什麼影響,另外昨天又試了一整天,發現不close好像也不行,因為有時只是介面被關閉,可是在工作管理員中卻會一直留著,這樣也是不行的,麻煩大大指導一下,該如何才能檢查close時所有的connect是否正確關閉後再結束程式,謝謝版大。

===================引 用 Stallion 文 章===================
我覺得這個問題很奇怪~
Socket使用完畢本來就該關閉的,為何不關?你的問題應該是做到如何防止Socket未妥善關閉,而不是不關閉會怎樣?!
------
DELPHI初學者
系統時間:2024-04-24 0:36:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!