分類  >  編程>VC/MFC >

關於TCP/IP阻塞模式下的多線程連接(客戶端)解決思路

tags:    時間:2013-12-30 06:35:02
關於TCP/IP阻塞模式下的多線程連接(客戶端)
客戶端程序,基於TCP/IP阻塞模式
連接伺服器,代碼如下:
HANDLE   hThread;
hThread   =   CreateThread(NULL,0,ThreadLINK,(LPVOID)LINKPORT,0,NULL);
Sleep(4000);
CloseHandle(hThread);
ThreadLINK函數中就包含connect函數
當Sleep很短的時間的時候,就連接不上伺服器,但當時間很長的時候界面就無法響應其他消息(和不創建線程連接一樣了),請問線程到底該怎麼寫??

------解決方案--------------------
不創建線程,直接等可以嗎?
------解決方案--------------------
樓主是把主線程SLEEP了么?SLEEP時間長主界面當然沒法響應其他消息了
主線程SLEEP時間短,肯定TCP連接剛剛連上(或者沒連上)就已經被CLOSEHANDLE()了
我不太明白你為什麼剛剛創建一個線程,連接一下,就要CLOSEHANDLE啊?
沒有循環語句什麼的嗎?

------解決方案--------------------
看來問題是出在了
Sleep(4000);
上了

------解決方案--------------------
你將主線程即UI線程Sleep了,當然不響應了。在主線程中不要Sleep,定義一個消息,當ThreadLINK
的conncet完成後就向窗口發消息,這樣你就知道他是已經連接上了。或者直接用WSAAsyncSelect

推薦閱讀文章

Bookmark the permalink ,來源:互聯網