linux socket 筆記。常量,預定義INADDR_ANY等

INADDR_ANY:所有的地址

定義:

#include < netinet/in.h>

INADDR_ANY就是指定地址爲0.0.0.0的地址,這個地址事實上表示不確定地址,或“所有地址”、“任意地址”。 一般來說,在各個系統中均定義成爲0值。

/* Address to accept any incoming messages. */  #define INADDR_ANY ((in_addr_t) 0x00000000)

    serveraddr.sin_addr.s_addr= INADDR_ANY;


char *local_addr="0.0.0.0";
   serveraddr.sin_addr.s_addr=inet_addr(local_addr);//inet_addr轉換爲網絡字節序

幾個字節順序轉換函數:
·htonl():把32位值從主機字節序轉換成網絡字節序
·htons():把16位值從主機字節序轉換成網絡字節序
·ntohl():把32位值從網絡字節序轉換成主機字節序
·ntohs():把16位值從網絡字節序轉換成主機字節序
 

 FD_ZERO(fd_set *set)----清除一個文件描述符集;
   FD_SET(int fd,fd_set *set)----將一個文件描述符加入文件描述符集中;
   FD_CLR(int fd,fd_set *set)----將一個文件描述符從文件描述符集中清除;
   FD_ISSET(int fd,fd_set *set)----試判斷是否文件描述符被置位。
socket 參數。


 int socket(int domain, int type, int protocol);  在參數表中,domain指定使用何種的地址類型,比較常用的有:  

PF_INET, AF_INET: Ipv4網絡協議  

PF_INET6, AF_INET6: Ipv6網絡協議。  

type參數的作用是設置通信的協議類型,可能的取值如下所示:  

SOCK_STREAM: 提供面向連接的穩定數據傳輸,即TCP協議。  

OOB: 在所有數據傳送前必須使用connect()來建立連接狀態。  

SOCK_DGRAM: 使用不連續不可靠的數據包連接。  

SOCK_SEQPACKET: 提供連續可靠的數據包連接。  

SOCK_RAW: 提供原始網絡協議存取。  

SOCK_RDM: 提供可靠的數據包連接。  

SOCK_PACKET: 與網絡驅動程序直接通信。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章