Re: [問題] winsock listen 多個 port

看板Programming作者 (初夏。)時間18年前 (2006/10/31 22:51), 編輯推噓2(201)
留言3則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《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
感謝!目前沒考慮使用多個 process
11/01 14:09, 1F

11/01 14:12, , 2F
因為多個 port 收進來的資料會做整合
11/01 14:12, 2F

11/01 14:12, , 3F
不太想透過 process 之間來處理資料 :p
11/01 14:12, 3F
文章代碼(AID): #15HsBP0f (Programming)
討論串 (同標題文章)
文章代碼(AID): #15HsBP0f (Programming)