作者johnhmj (耗呆肥羊)
看板C_and_CPP
標題[問題] 伺服端是用幾個 Socket?
時間Mon May 19 10:07:51 2014
開發平台(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