作者SixM (只有流星沒有雨)
看板Visual_Basic
標題[VB6 ] 請問Winsock連線的問題
時間Fri Aug 29 11:13:40 2008
小弟想要透過Winsock來做TCP的連線
server端跟client端基本上的架構已經完成
但是在error handling上一直有問題
主要的問題點在於如何去disconnect連線
不管是在server端或是client端,小弟都有設置一個button去開始及中斷連線
但是這個button按了一次或是幾次,就死掉了
我面臨的情況有以下幾種
1.server及client已建立連線,由server端或client端中止連線
2.當server處於listening,client尚未提出connect,server端去中止listen
3.connecting時,由server端或client端去中斷連線
以上的連線請求或是中斷請求,都是透過一個button來執行
按一下為連線,再按一下為中斷
但是按了一次或是幾次之後,該button就沒有作用了
請問該如何去確認我的bug在哪,或是我有甚麼沒有考量到的嗎
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 222.156.254.82
1F:推 MrOrz:沒有作用?1.有沒有錯誤訊息? 2.沒作用時winsock的state是? 08/29 12:25
2F:→ MrOrz:如果是winsock沒有完全關閉之類的,應該有錯誤訊息才是@@ 08/29 12:26
3F:→ SixM:舉例來說,按下button去連線然後button.caption="stop", 08/29 12:32
4F:→ SixM:此時再去按button,button完全沒有反應,不會從stop變成start 08/29 12:32
5F:→ SixM:此時也沒有錯誤訊息,一直按button都停留在stop 08/29 12:33
6F:→ SixM:我的button按一次是送winsock.connect or winsock.listen 08/29 12:33
7F:→ SixM:再按一下送winsock.close 08/29 12:34
8F:→ SixM:我設斷點去跑,然後按F8,一步步trace,有時候都能正常的 08/29 12:34
9F:→ SixM:start跟stop,但是如果不設斷點,直接去run,就會停在stop不 08/29 12:35
10F:→ SixM:動。此時有觀察到winsock.state=9。但不知道為什麼 08/29 12:35
11F:推 MrOrz:在connect和listen之前,有沒有確認該winsck的state是closed 08/30 01:38
12F:→ MrOrz:試試在這兩個動作之前加上do until winsck.state=sckclosed 08/30 01:39
13F:→ MrOrz:吧~@@ 08/30 01:40