linux 網路程式設計函式原型速查

2021-05-01 19:49:00 字數 2796 閱讀 7861

兩個結構體

struct sockaddr ;

/* structure describing an internet socket address.  */

struct sockaddr_in

;主要函式

int socket(int domain, int type, int protocol);

int bind(int sockfd,struct sockaddr *my_addr, int addrlen);

int send(int sockfd, const void *msg, int len, int flags);

int accept(int sockfd, void *addr, int *addrlen);

int listen(int sockfd, int backlog);

int recv(int sockfd,void *buf,int len,unsigned int flags);  

int sendto(int sockfd, const void *msg,int len,unsigned int flags,const struct sockaddr *to, int tolen);    

int recvfrom(int sockfd,void *buf,int len,unsigned int flags,struct sockaddr *from,int *fromlen);  

from是乙個struct sockaddr型別的變數,該變數儲存源機的ip位址及埠號。fromlen常置為sizeof (struct sockaddr)。

一點解釋

send()和recv()這兩個函式用於面向連線的socket上進行資料傳輸

sendto()和recvfrom()用於在無連線的資料報socket方式下進行資料傳輸

呼叫close()函式來釋放該socket

呼叫shutdown()函式來關閉該socket

int shutdown(int sockfd,int how);  

sockfd是需要關閉的socket的描述符。引數 how允許為shutdown操作選擇以下幾種方式:  

·0-------不允許繼續接收資料  

·1-------不允許繼續傳送資料  

·2-------不允許繼續傳送和接收資料

/* description of data base entry for a single host.  *//usr/include 下

struct hostent

; struct hostent

gethostbyname() 成功時返回乙個指向結構體 hostent 的指標,失敗時是個空 (null) 指標

gethostbyaddr()

htonl():把32位值從主機位元組序轉換成網路位元組序·

htons():把16位值從主機位元組序轉換成網路位元組序·

ntohl():把32位值從網路位元組序轉換成主機位元組序·

ntohs():把16位值從網路位元組序轉換成主機位元組序

int (*release)(struct socket *sock);      

int (*bind)(struct socket *sock, struct sockaddr *myaddr, int sockaddr_len);      

int (*connect)(struct socket *sock, struct sockaddr *vaddr, int sockaddr_len, int flags);  

int (*accept)(struct socket *sock,struct socket *newsock, int flags);     

unsigned int (*poll)(struct file *file, struct poll_table_struct *wait);      

int (*ioctl)(struct socket *sock, unsigned int cmd, unsigned long arg);     

int (*listen)(struct socket *sock, int len);      

int (*shutdown)(struct socket *sock, int flags);      

int (*setsockopt)(struct socket *sock, int level, int optname, char __user *optval, int optlen);      

int (*getsockopt)(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen);      

int (*sendmsg)(struct kiocb *iocb, struct socket *sock,struct msghdr *m, size_t total_len);      

int (*recvmsg)(struct kiocb *iocb, struct socket *sock,struct msghdr *m, size_t total_len, int flags);      

int (*mmap)(struct file *file, struct socket *sock,struct vm_area_struct * vma);    

ssize_t (*sendpage)(struct socket *sock, struct page *page,int offset, size_t size, int flags);

Linux網路程式設計常用函式

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

Linux 網路程式設計 基本函式

我們現在所使用的網路tcp ip 其實就是大牛們幾十年前發明的東西,經過幾十年的發展,雖然出現了很多的其它協議,但是底層的東西卻基本穩定。現在的b s c s 等的網路體系都是執行在這樣乙個網路體系之上的。include include int socket int domin int type,i...

Linux網路程式設計 poll函式

作用 監視並等待多個檔案描述符的屬性變化。函式原型 int poll struct pollfd fds,nfds t nfds,int timeout 函式引數意義 fds 指向乙個結構體陣列的第0個元素的指標,每個陣列元素都是乙個struct pollfd結構,用於指定測試某個給定的fd的條件。...