看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 各位大大早安 (∩_∩) 我有問題 目前我寫的伺服端只接收一個客戶端的連線,假如要改寫伺服端, 讓伺服端可以接收多個客戶端的連線,伺服端本身的 Socket 要用一個還是 隨著客戶端的數目而增加? accept(this->m_socket, (sockaddr*)&client.m_saddr, &addrlen); 就是 this->m_socket 要不要隨著客戶端的數目而增加? 還是只要用它一個來回傳 client.m_socket? 程式碼(Code):(請善用置底文網頁, 記得排版) 以下程式碼是伺服端只接收一個客戶端連線 客戶端:https://gist.github.com/johnhmj/c9df188c8b925152bd61 伺服端:https://gist.github.com/johnhmj/ec34f06bdaa92979c0cc 補充說明(Supplement): 無 -- 一隻小肥羊、兩隻小肥羊、三隻小肥羊、… 一百隻小肥羊、一百零一隻小肥羊、一百… ZZZzzz… -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.165.137 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1400465296.A.AF6.html
Killercat:大多數來講一個port listening即可 大不了backflag大點 05/19 10:15
pcjustin:用multiple thread處理多個連線即可 05/19 20:07
(._.?) 喔... 我再去找資料再研究一下好惹 ※ 編輯: johnhmj (27.241.205.236), 05/20/2014 21:53:08
Killercat:給你個關鍵字比較好找 通用的話"select" 高效能取向 05/22 17:22
Killercat:的話 Windows查IOCP Linux查epoll Unix...er...別問 05/22 17:23
Killercat:不想分平台也不介意奇怪的語法的話 boost::asio 05/22 17:23
Killercat:select model理論上通吃 不過效能不太妙就是 05/22 17:24
Killercat:硬要自己開thread處理accepted socket不是不行 但是沒有 05/22 17:25
Killercat:人還在用那麼trivial的作法了 05/22 17:25
(∩_∩)-c█^█3-( ̄▽ ̄")y 感謝大大指教 ※ 編輯: johnhmj (42.66.169.106), 05/22/2014 22:24:49