簡單的並發服務器(多個線程各自accept)


基於之前講述的簡單循環服務器,做一個多個線程各自accept的服務器demo

由於多個線程各自accept,容易造成數據錯誤,需要在accept前后枷鎖

先看下客戶端

客戶端創建socket,初始化服務器地址信息,然后進行連接

 

連接成功后發送信息給服務器,並且接受服務器回傳的信息

 

服務器部分:

服務器靜態的的初始化一個線程鎖,然后去寫一個處理連接請求的函數,在循環里

accept客戶端的連接,接受客戶端的消息,並且發送給客戶端事件,

由於多個線程各自accept,所以要在accept處加鎖,避免產生的socket有誤

處理連接,這個主要是服務器創建了幾個線程,各自線程的回調函數是handle_request,參數是socket

pthread_join是等待線程安全退出后進程結束

 

服務器的main函數

 

 

這是個阻塞模式下的多線程accept,實際生產和項目中都采用非阻塞模型,只是用來理解socket通信

原理,並無太大用處。

源代碼下載地址: http://download.csdn.net/detail/secondtonone1/9510570

關注我的二維碼,謝謝。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM