linux網路程式設計基礎 常用函式錯誤處理封裝

2021-08-28 15:16:39 字數 2940 閱讀 1389

#include

#include

#include

#include

void

perr_exit

(const

char

*s)//***************************網路*********************************

intaccept

(int fd,

struct sockaddr* addr, socklen_t* addrlen)

return n;

}int

bind

(int fd,

const

struct sockaddr *addr, socklen_t addrlen)

intconnect

(int fd,

const

struct sockaddr *addr, socklen_t addrlen)

intlisten

(int fd,

int backlog)

intsocket

(int family,

int type,

int protocol)

//***************************讀寫操作*********************************

ssize_t read

(int fd,

void

*ptr, size_t nbytes)

return n;

}ssize_t write

(int fd,

const

void

*buf, size_t nbytes)

return n;

}//讀指定位元組數

ssize_t readn

(int fd,

void

*vptr, size_t n)

else

if(nread ==0)

break

;

nleft -

= nread;

ptr +

= nread;

}return n - nleft;

}//寫指定的位元組數

ssize_t writen

(int fd,

const

void

*vptr, size_t n)

nleft -

= nwritten;

ptr +

= nwritten;

}return n;

}//讀100位元組,通過ptr返回1位元組,然後每次呼叫都返回 第一次讀到的資料的 乙個位元組,直到100位元組全部返回

static ssize_t my_read

(int fd,

char

*ptr)

else

if(read_cnt ==0)

return0;

read_ptr = read_buf;

} read_cnt--

;*ptr =

*read_ptr++

;return1;

}//讀一行

ssize_t readline

(int fd,

void

*vptr, size_t maxlen)

else

if(rc ==0)

else

return-1

;}*ptr =0;

return n;

}

#ifndef __wrap_h_

#define __wrap_h_

//socket相關

void

perr_exit

(const

char

*s);

intaccept

(int fd,

struct sockaddr* addr, socklen_t* addrlen)

;int

bind

(int fd,

const

struct sockaddr *addr, socklen_t addrlen)

;int

connect

(int fd,

const

struct sockaddr *addr, socklen_t addrlen)

;int

listen

(int fd,

int backlog)

;int

socket

(int family,

int type,

int protocol)

;//讀寫相關

ssize_t read

(int fd,

void

*ptr, size_t nbytes)

;ssize_t write

(int fd,

const

void

*buf, size_t nbytes)

;ssize_t readn

(int fd,

void

*vptr, size_t n)

;ssize_t writen

(int fd,

const

void

*vptr, size_t n)

;static ssize_t my_read

(int fd,

char

*ptr)

;ssize_t readline

(int fd,

void

*vptr, size_t maxlen)

;#endif

Linux網路程式設計常用函式

計算機資料儲存有兩種位元組優先順序 高位位元組優先和低位位元組優先。internet上資料以高位位元組優先順 序在網路上傳輸,所以對於在內部是以低位位元組優先方式儲存資料的機器,在internet上傳輸資料時就需 要進行轉換。我們要討論的第乙個結構型別是 struct sockaddr,該型別是用來...

Linux 網路程式設計常用函式詳解

sendto 經socket傳送資料 相關函式 send sendmsg,recv recvfrom socket 表頭檔案 include sys types.h include sys socket.h 定義函式 int sendto int s const void msg,int len,u...

linux網路程式設計基礎 網路基礎

客戶機 client 伺服器 server 模式。需要在通訊兩端各自部署客戶機和伺服器來完成資料通訊。瀏覽器 browser 伺服器 server 模式。只需在一端部署伺服器,而另外一端使用每台pc都預設配置的瀏覽器即可完成資料的傳輸。c s模式 優點缺點 資料快取本地,效率高 工作量大,開發周期更...