小弟實習生,初學C++網路編程,所以想問下多執行緒雙向轉發器如何撰寫,以及遇到的幾個問題,
模型如下,sClient[客戶端]<---->sTran[轉發器]<---->sServer[服務器]
也就是 客戶端把連接到轉發器之后,發送資料給轉發器,轉發器把資料傳給服務器,然后服務器回傳的資料,再傳給客戶端這樣,
我現在的解決方法是 監聽一個埠,當有客戶來連接的時候,創建一個執行緒把socket傳送過去,但是,當客戶端第二次發送資料的時候 還是會創建執行緒,所以有很多地方不理解,現在請教大家能給一個完整成熟的模型或者思路,可以讓轉發器雙向轉發而且可以多執行緒支持N個客戶,,,小弟虛心請教,在線等!!
uj5u.com熱心網友回復:
如果客戶端并發訪問數量不大的話,一個客戶端對應一個執行緒就行,可以在客戶端接入的時候新建一個執行緒,也可以事先建立一個執行緒池,等客戶端接入的時候分配一個執行緒,等通信結束后就刪掉或釋放執行緒,在客戶端少的情況下這種方式是可行的如果客戶端并發的數量很大,比如上百或上千的客戶端同時訪問,就要考慮用完成埠來實作
uj5u.com熱心網友回復:
目前打算使用完成埠來搞定,因為他的服務端是網頁的,網頁提交的資料再轉發給服務器,就是很多判斷有點模糊,初學者表示很郁悶,感謝朋友的回答!
uj5u.com熱心網友回復:
。。。。我以為是我的帖子 發錯了,看到這哥們也在做轉發,uj5u.com熱心網友回復:
1、轉發器做服務處理,對每個連接開執行緒進行2、注冊處理,成對的連接進行注冊,也就是說一個客戶端與一個服務端,做一次注冊
uj5u.com熱心網友回復:
CB 自帶 Indy 控制元件可以支持多執行緒,當連接后自動為你開啟一條執行緒. 不知道你要做哪方面的軟體. 比如IM的最簡單的作業方式 客戶端->服務端(其實就是轉發器,可以轉發任何東西,檔案,圖片,文字)->客戶端.轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/154214.html
標籤:網絡及通訊開發
