* mysock.h
* * 建立日期: 2023年7月27日
*/#ifndef _mysock_h
#define _mysock_h
#include struct mysock;
struct mysock* newsock (int domain, int type, int protocol);
int mybind (const char* ip, const int port, struct mysock* mysock);
int myconnect (struct mysock* mysock);
int mylisten(int backlog, struct mysock* mysock);
int myaccept (struct mysock* mysock);
ssize_t mysend (int s, const void* buf, size_t len, size_t flags);
ssize_t myrecv (int s, const void* buf, size_t len, size_t flags);
void freesock(struct mysock* mysock);
#endif /*_mysock_h*/
#include "mysock.h"
#include #include #include #include struct mysock ;
struct mysock* newsock (int domain, int type, int protocol)
mysock->addr.sin_family = domain;
mysock->bind = mybind;
mysock->connect = myconnect;
mysock->listen = mylisten;
mysock->accept = myaccept;
return mysock;
}int mybind (const char* ip, const int port, struct mysock* mysock)
int myconnect (struct mysock* mysock)
int mylisten(int backlog, struct mysock* mysock)
int myaccept (struct mysock* mysock)
ssize_t mysend (int s, const void* buf, size_t len, size_t flags)
ssize_t myrecv (int s, const void* buf, size_t len, size_t flags)
void freesock(struct mysock* mysock)
想嘗試著封裝一下socket ,使他們看起來更簡潔,統一。注釋沒寫,因為這些函式比較常見,定義了乙個mysock類,資料的操作盡量在該類的成員函式中完成。為了訪問成員函式中的資料,我只能想出把該指向物件的指標作為引數傳遞給成員函式的方法了,這有點像c++的this指標,我想c++的設計者是不是在這個過程中發現,乾脆約定乙個叫this指標的東西吧,這樣就不用給每個成員函式都定義乙個指向自己的指標了。另外這個類中還定義了乙個void* data,這個可是神器,它能訪問的東西很多,例如它的父親,它能和很多東西發生關聯。
封裝socket整理
不管是socket通訊程式的客戶端還是服務端,準備工作的 較長,影響了主程式的簡潔性,不過可以分離出來,追求簡單實用。用c語言封裝 c語言只能把程式封裝成函式。測試 客戶端 int connectclient const char severip,const int port include inc...
Linux元件封裝 八 Socket的封裝
我們要封裝socket,首先我們需要了解socket需要哪些要素 1 首先,乙個套接字建立後,需要繫結一塊網絡卡的ip,以及連線的對口號,所以我們先封裝inetaddr。在class中,僅有的乙個私有成員就是struct sockaddr in型別的乙個物件,我們需要將該物件的幾種賦值與建立封裝到類...
嘗試進行函式封裝 計算BMI值
嘗試函式封裝 def func name height,weight 乙個人的身高 m 和體重 kg height 0.17,weight 65,根據bmi公式 體重除以身高的平方 計算他的bmi指數 a.例如 乙個65公斤的人,身高是1.62m,則bmi為 65 1.62 2 24.8 b.根據b...