多程序併發程式設計 訊息傳遞伺服器

2021-07-15 15:43:40 字數 809 閱讀 6819

開發平台: linux,ubuntu

開發工具: gedit

開發語言: c/c++, uc

使用技術: 程序,管道,共享記憶體,套節字,訊號,檔案

專案描述: 建立csocket類,封裝了套節字的建立,繫結,監聽,關閉。cepoll_event類,封裝了核心事件表的建立,事件集,

控制,新增,銷毀,監聽事件,建立檔案檔案描述符控制類cfiledescriptorctl,負責將套節字或者管道等等其他檔案描述

符,需要設定為非阻塞的,設定為非阻塞,該例項採用epoll的邊緣觸發,而不是電平觸發,當有訊號發出的時候,為了避

免訊號處理函式時間過長,而導致作業系統過長的不再發出該訊號,採用管道在訊號處理函式裡在寫端寫入訊號,在管道

裡將訊號送給主程序,讓主程序處理,這樣就可以避免作業系統過長時間不再傳送該訊號,然後向核心事件表中註冊相應

的事件,然後用cepoll_event中的事件監聽成員函式,監聽事件,然後根據事件作出相應的處理,當監聽到當有連線接入的

時候,接受連線,fork子程序,讓子程序處理該連線,然後在子程序中建立乙個套節字管道(全雙工),負責父子程序通訊,

然後再在主程序中建立一塊記憶體。用於共享資料(mmap), 然後,子程序中也採用epoll的邊緣觸發模式,監聽該事件表中的事件

當epollin事件被觸發的時候,接受資料,將其存到相應的共享資料然後通過套節字管道,傳送該記憶體的標識,由主程序

負責向除本身連線的其他連線傳送記憶體標識,然後其他子程序,就根據該標識拿到資料,傳送到相應的客戶端

心得體會: 體會了epoll,管道,記憶體等一些的使用,感覺這是乙個模板,不同的是傳送的資料。

TCP併發伺服器多程序程式設計

環境 linux c 功能 併發伺服器實現cs通訊 server.c include include include include include include 檔案io read write close fork waitpid include socket struct sockaddr i...

Linux 併發伺服器程式設計(多程序)

在linux中通過流式套接字程式設計 tcp 實現乙個併發伺服器的訪問回顯,適合剛學完linux套接字程式設計的朋友進行鞏固訓練 具體功能 include include include include include include include include include include ...

Linux 併發伺服器程式設計(多程序)

在linux中通過流式套接字程式設計 tcp 實現乙個併發伺服器的訪問回顯,適合剛學完linux套接字程式設計的朋友進行鞏固訓練 具體功能 include include include include include include include include include include ...