伺服器客戶端程式設計模式思考

2021-04-17 11:10:01 字數 1055 閱讀 9025

這一陣子一直在搞企業資訊化中公文流轉等相關模組,其實在之前已經開發了oa系統的幾個常用模組。由於之前oa系統中的工作流一直沒有搞明白,又是電子簽名,又是工作流,搞得我不知所云,所以我一直不敢動手。好在現在有強大的網路,在網上看了幾個程式,一種「山窮水復疑無路,柳暗花明又一村」的感覺。

下面是我的從網上搜的一點關於伺服器客戶端相關的東西。看半天也沒搞明白。先放到這裡,有時間就研究下。

伺服器客戶端程式設計的最基本模式客戶程式編寫的基本方法。步驟:建立套介面→與遠端服務程式連線→讀/寫資料→終止連線。建立套介面用socket函式,這個函式有三個引數,第乙個引數指定協議族,如af_inet(ipv4協議),af_inet6(ipv6協議),af_local(unix域協議);第二個引數為套介面型別,有sock_stream(位元組流套介面),sock_dgram(資料報套介面),sock_raw(原始套介面);第三個引數一般取0。一般地,af_inet和sock_stream的組合對應tcp協議;af_inet和sock_dgram的組合對應udp協議;af_inet和sock_raw的組合對應ipv4協議。socket函式成功時返回乙個套介面描述字。與遠端服務程式連線使用connect函式,此函式有三個引數。第乙個引數為套介面描述字;第二個引數為乙個sockaddr結構,這個結構包含了遠端服務程式的ip位址與埠號;第三個引數為sockaddr結構的長度。connect函式呼叫成功後,套介面描述字就與遠端服務程式建立好了連線,可以開始讀/寫了。讀/寫資料使用read和write函式,這兩個函式均有三個引數。第乙個引數為套介面描述字;第二個引數為讀/寫資料的緩衝區;第三個引數為緩衝區的長度。讀寫完後可呼叫函式close關閉套介面,引數為套介面描述字。 

服務程式編寫的基本方法。步驟:建立套介面→繫結套介面→設定套介面為監聽模式,進入被動接受連線請求狀態→接受請求,建立連線→讀/寫資料→終止連線。繫結套介面是為本程式分配乙個供使用的通訊埠,使用bind函式。呼叫函式listen後套介面進入監聽狀態,再呼叫accept函式接受連線請求,如果沒有連線請求,accept函式將使程式進入睡眠狀態,直到被遠端客戶程式的請求所喚醒。連線一旦建立讀/寫與客戶程式相同。服務程式一般在設定為監聽模式後處於不斷的接受請求、處理請求的迴圈中。

客戶端 伺服器模式

目錄 客戶端 伺服器模式 客戶端程序 伺服器程序 2層和3層架構 服務端的特徵 客戶端特徵 定義 客戶端 伺服器模式 client server model 簡稱c s結構,是一種網路架構,它把客戶端 client 與伺服器 server 區分開來。每乙個客戶端軟體的例項都可以向乙個伺服器或應用程式...

客戶端 伺服器程式設計模型

客戶端和伺服器是程序,不是主機。客戶端 伺服器模型中的基本操作是事務。乙個客戶端 伺服器事務由四步組成 1.當乙個客戶端需要服務時,它向伺服器傳送乙個請求,發起乙個事務。例如,當web瀏覽器需要乙個檔案時,它就傳送乙個請求給web伺服器。2.伺服器收到請求後,解釋它,並以適當的方式操作它的資源。例如...

Linux socket程式設計 伺服器 客戶端

根據網上的程式修改的,感謝!另外有個linux網路除錯工具,tcpdump,類似xp上的wireshark,使用介紹 伺服器端 客戶機端 可以實現,客戶機一直傳送,伺服器一直接收資料,原理網上的程式是只發一次。現在這個還有個問題,退出只能ctrl c,如果客戶機先退出,伺服器一直接收資料,不知道什麼...