Socket通訊前必須考慮的幾件事

2022-02-27 02:47:05 字數 802 閱讀 8709

如何處理i/o?是讓程式阻塞等待響應,還是在後台處理這些事?這是軟體設計的關鍵因素。阻塞式的i/o操作會讓程式架構難以擴充套件,而後台處理i/o也是比較困難的。

如何處理那些臨時的、來去自由的元件?我們是否要將元件分為客戶端和服務端兩種,並要求服務端永不消失?那如果我們想要將服務端相連怎麼辦?我們要每隔幾秒就進行重連嗎?

如何處理那些不能立刻傳送出去的訊息?比如我們需要等待乙個網路元件重新連線的時候?我們是直接丟棄該條訊息,還是將它存入資料庫,或是記憶體中的乙個佇列?

要在**儲存訊息佇列?如果某個元件讀取訊息佇列的速度很慢,造成訊息的堆積怎麼辦?我們要採取什麼樣的策略?

如何處理丟失的訊息?我們是等待新的資料,請求重發,還是需要建立一套新的可靠性機制以保證訊息不會丟失?如果這個機制自身崩潰了呢?

如果我們想換一種網路連線協議,如用廣播代替tcp單播?或者改用ipv6?我們是否需要重寫所有的應用程式,或者將這種協議抽象到乙個單獨的層中?

我們如何對訊息進行路由?我們可以將訊息同時傳送給多個節點嗎?是否能將應答訊息返回給請求的傳送方?

我們如何為另一種語言寫乙個api?我們是否需要完全重寫某項協議,還是重新打包乙個類庫?

怎樣才能做到在不同的架構之間傳送訊息?是否需要為訊息規定一種編碼?

我們如何處理網路通訊錯誤?等待並重試,還是直接忽略或取消?

考慮SQL Server安全時所應注意的幾個方面

安全性問題一直dba是比較關心的問題,因為建立資料庫的目的就是讓相關的的客戶端來進行訪問,所以很難避免不出現安全隱患,例如客戶端鏈結的許可權 資料傳輸過程中的安全等問題,所以大家在考慮sql server伺服器安全的同時時,必須留意以下幾個方面 第一方面 客戶端安全 首先需要保證客戶端必須是安全的,...

簡易的Socket通訊

非常簡單的socket通訊 上次使用過的,還花了一些時間,保留以適用於偶而需要通訊的情況救急用。以下的四段 完成了使用簡單的tcp udp協議來進行通訊的全部所需!1 include string 2 include stdlib.h 3 include stdio.h 4 include coni...

socket 的通訊過程

1.建立套接字 linux在利用socket 系統呼叫建立新的套接字時,需要傳遞套接字的位址族識別符號 套接字型別以及協議,其函式定義於net socket.c中 asmlinkage long sys socket int family,int type,int protocol 實際上,套接字對...