Re: [問題] winsock listen 多個 port
※ 引述《lchbird (新手上路)》之銘言:
: 最近使用程式寫簡單的 socket 程式,
: 原本是開一個 socket ,只聽一個 port。
: 這幾天老闆要求改成可聽多個 port ,
: 雖然硬改出來了,但不知道是不是一個好的方法,上來請教大家。
: 原本聽一個 port 時,每一個 connection 就會再生一個 thread 去處理。
: 因為是 console 下 blocking mode ,所以一個 port 時還好。
: 要多個 port 時,使用了一個 port 就給一個 thread 去聽,
: 而每個 port 的每個 connection ,都會再生出一個 thread 去處理。
: 請問各位,有沒有人有類似的經驗?又,這類「聽多個 port 」的程式大部份
: 都是怎麼處理的?
: 小弟試著去找 linux 下 sshd 的程式碼來看,因為它在使用上也可以開啟多個
: port ,有看到裡面用到 pthread ,但不知道它是用在哪裡部份的,也沒有明確
: 的看到它如何處理開啟多個 port 的部份。
: 謝謝!
你可以參考select()看看,
假設有一個port array,讓負責listen的thread去polling這些port,
可以利用select()的return value來判斷是否有人嘗試連進來。
我沒有這樣寫過,不過理論上應該可以這樣達成,因為select()可以達成non-blocking。
當然有個更簡單的方法,用你原來只能開一個port的程式,
開多個process就好了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.187.12.127
推
11/01 14:09, , 1F
11/01 14:09, 1F
推
11/01 14:12, , 2F
11/01 14:12, 2F
→
11/01 14:12, , 3F
11/01 14:12, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章