前言
前面我們已經實現了一個EchoServer,今天我們繼續來寫其他的東西。例如一個客戶端,還有一個加法服務器。
運行效果
Client端:
思考
相比服務端Socket,客戶端的Socket要簡單的多。我們不難想到,一個客戶端Socket需要哪些元素。
- Socket的相關屬性:協議族等
- 服務器的地址,Host|Post,并連接
- 發送與接收
代碼
- 42行,申請一個Socket。
- 46-51行,格式化服務器的地址與端口,inet_pton,這是將字符串的host格式化為協議地址。
- 54-57行,連接服務器。必須要對應的服務器已經在Listen的狀態
-
59-67行,讀數據,并用send發送給服務端,并從服務端recv對應的結果。
對于服務器來說,我們只要在先前的echo框架中進行修改即可。
需要注意的是,這種直接傳一個結構體必須客戶端與服務器的結構體完全一致。并且受到網絡傳輸中大端小端的影響。所以,這種不經序列化的傳輸其實是不安全的。