台灣最大程式設計社群網站
線上人數
1029
 
會員總數:239073
討論主題:185519
歡迎您免費加入會員
討論區列表 >> C/C++ >> 動態建立執行緒與Socket網路傳輸
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
動態建立執行緒與Socket網路傳輸
價值 : 160 QP  點閱數:141 回應數:2

樓主

Chan_Mark
門外漢
0 53
958 57
發送站內信

各位大大好

架構圖
上圖是我想的Client-Server架構,設備約十幾台PC,其中有一台做為Client,其餘為Server
只有Client發送命令時,Server才會回應,Server端已用VB的Socket物件完成。
目前要編寫Socket-Client這一端,要用VC6完成
我希望每個Socket都是由獨立的Thread服務,確保每個通道都可以獨立傳輸,不受其它Socket影響需要排隊發送命令。
在執行緒的建立上,我只知道單一執行緒的建立方式,如果在不知道會有幾台PC要連線
那則需要用動態的方式建立執行緒,在每個執行緒在建立Socket-Client連線
我的問題卡在怎麼動態建立執行緒,因為連線數未知
下面是我建立兩個執行緒呼叫同一Function的例子,想請教各位大大
如果要動態方式建立執行緒時我應該怎麼改?
我的意思是在每次輸入IP和Port時,這兩個變數會先存起來
但會先建立Thread,在執行緒裡面在執行Socket-Client連線




搜尋相關Tags的文章: [ 動態建立Thread ] , [ Socket ] , [ 多執行緒 ] ,
本篇文章發表於2017-01-10 11:19
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

JoJo
檢舉此回應
Multi-threaded Client/Server Socket Class
本篇文章回覆於2017-01-10 17:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Chan_Mark
檢舉此回應
JoJo大大您好
您提供的網址是有一筆連線進來就會建立一條執行緒
我程式有稍微修改如下:
換個方式提問,假設我按鍵盤按鍵A就會建立一條執行緒,執行緒中會有While(1)的迴圈一直跑
那就會執行此行程式一次 hThread1 =(HANDLE)_beginthreadex(NULL,0,ThreadMain, NULL,0,&dwThreadMainID[i]);
我的問題是,按了三次後建立了三條執行緒,分別取得dwThreadMainID[i]碼為,1234、5678、1258
我疑惑的點是建了三條執行緒名稱都是ThreadMain的function,只有threadID有區別
當有一筆資料輸入要在ID為1234的執行緒的中執行,那在ThreadMain要怎麼區分呢?

這是我困惑的點,請您多多指正

以下是我猜測的方式,不知對不對


//-------------------------------------------------------------------------------------------------

本篇文章回覆於2017-01-13 16:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.