2011-06-12 56 views
0

此問題與Socket programming in CSleeping a worker thread in a file server有關。從多個客戶端到服務器的交叉消息

我對套接字以及pthreads非常陌生,不得不處理相當大的項目。

我想知道下面的情況是否可行? 我有多個客戶端到服務器,每個客戶端向服務器發送多個消息。每個客戶端都由一個任務/工作者線程提供服務。客戶端發送消息,並在收到回覆時發送下一條消息,直到完成並關閉連接。任務線程處理來自客戶端的一個請求,發送它的回覆並休眠直到它從同一客戶端接收到下一條消息,直到客戶端關閉連接並且線程退出。

現在,正如我所說的多個客戶端在同一時間連接。服務器是否會處理來自一個客戶端的所有消息,然後在到達時交互處理下一個消息或接收消息,以保持所有「實時」客戶端的連接處於打開狀態。

+0

我的問題可能似乎重複,但我不是很清楚,所以不得不問。很樂意收到任何關注此類事情的在線教程的鏈接 – 2011-06-12 12:59:20

+1

這兩種情況都是可能的。獲取這本書 - http://www.unpbook.com - 這是你會找到的最好的教程。如果你太急躁,請閱讀Beej的指南http://beej.us/guide/bgnet/ – 2011-06-12 13:28:19

+0

非常感謝.... – 2011-06-12 15:06:56

回答

0

服務器是否會處理來自一個客戶端的所有消息,然後以交錯的方式處理下一個或接收消息,並保持所有「實時」客戶端的連接處於打開狀態。

服務器進程可以同時或以交錯的方式處理多個客戶端,具體取決於您的CPU和編程體系結構。

線程化編程+多核或多CPU可以同時處理這些請求。^_^

相關問題