
- Unix套接字教程
- Unix套接字 - 首頁
- Unix套接字 - 什麼是套接字?
- Unix套接字 - 網路地址
- Unix套接字 - 網路主機名
- Unix套接字 - 客戶端伺服器模型
- Unix套接字 - 結構體
- Unix套接字 - 埠和服務
- Unix套接字 - 網路位元組序
- Unix套接字 - IP地址函式
- Unix套接字 - 核心函式
- Unix套接字 - 輔助函式
- Unix套接字 - 伺服器示例
- Unix套接字 - 客戶端示例
- Unix套接字 - 摘要
- Unix套接字有用資源
- Unix套接字 - 快速指南
- Unix套接字 - 有用資源
- Unix套接字 - 討論
Unix套接字 - 摘要
這是一個與套接字程式設計相關的全部函式列表。
埠和服務函式
Unix提供以下函式從`/etc/services`檔案中獲取服務名。
struct servent *getservbyname(char *name, char *proto) − 此呼叫接收一個服務名和一個協議名,並返回該服務的對應埠號。
struct servent *getservbyport(int port, char *proto) − 此呼叫接收一個埠號和一個協議名,並返回對應的服務名。
位元組序函式
unsigned short htons (unsigned short hostshort) − 此函式將16位(2位元組)數量從主機位元組序轉換為網路位元組序。
unsigned long htonl (unsigned long hostlong) − 此函式將32位(4位元組)數量從主機位元組序轉換為網路位元組序。
unsigned short ntohs (unsigned short netshort) − 此函式將16位(2位元組)數量從網路位元組序轉換為主機位元組序。
unsigned long ntohl (unsigned long netlong) − 此函式將32位數量從網路位元組序轉換為主機位元組序。
IP地址函式
int inet_aton (const char *strptr, struct in_addr *addrptr) − 此函式呼叫將指定的字串(使用Internet標準點分十進位制表示法)轉換為網路地址,並將地址儲存在提供的結構體中。轉換後的地址將採用網路位元組序(位元組從左到右排列)。如果字串有效,則返回1,否則返回0。
in_addr_t inet_addr (const char *strptr) − 此函式呼叫將指定的字串(使用Internet標準點分十進位制表示法)轉換為適合用作Internet地址的整數值。轉換後的地址將採用網路位元組序(位元組從左到右排列)。它返回一個32位二進位制網路位元組序IPv4地址,出錯時返回INADDR_NONE。
char *inet_ntoa (struct in_addr inaddr) − 此函式呼叫將指定的Internet主機地址轉換為Internet標準點分十進位制表示法的字串。
套接字核心函式
int socket (int family, int type, int protocol) − 此呼叫返回一個套接字描述符,您可以在以後的系統呼叫中使用它,或者在出錯時返回-1。
int connect (int sockfd, struct sockaddr *serv_addr, int addrlen) − connect函式由TCP客戶端用來與TCP伺服器建立連線。如果成功連線到伺服器,此呼叫返回0,否則返回-1。
int bind(int sockfd, struct sockaddr *my_addr,int addrlen) − bind函式將本地協議地址分配給套接字。如果成功繫結到地址,此呼叫返回0,否則返回-1。
int listen(int sockfd, int backlog) − listen函式僅由TCP伺服器呼叫以監聽客戶端請求。此呼叫在成功時返回0,否則返回-1。
int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen) − accept函式由TCP伺服器呼叫以接受客戶端請求並建立實際連線。此呼叫在成功時返回非負描述符,否則返回-1。
int send(int sockfd, const void *msg, int len, int flags) − send函式用於透過流套接字或已連線的資料報套接字傳送資料。此呼叫返回傳送出的位元組數,否則返回-1。
int recv (int sockfd, void *buf, int len, unsigned int flags) − recv函式用於透過流套接字或已連線的資料報套接字接收資料。此呼叫返回讀取到緩衝區的位元組數,否則在出錯時返回-1。
int sendto (int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen) − sendto函式用於透過未連線的資料報套接字傳送資料。此呼叫返回傳送的位元組數,否則返回-1。
int recvfrom (int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen) − recvfrom函式用於從未連線的資料報套接字接收資料。此呼叫返回讀取到緩衝區的位元組數,否則返回-1。
int close (int sockfd) − close函式用於關閉客戶端和伺服器之間的通訊。此呼叫在成功時返回0,否則返回-1。
int shutdown (int sockfd, int how) − shutdown函式用於優雅地關閉客戶端和伺服器之間的通訊。與close函式相比,此函式提供了更多控制。成功時返回0,否則返回-1。
int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) − 此函式用於讀取或寫入多個套接字。
套接字輔助函式
int write (int fildes, const void *buf, int nbyte) − write函式嘗試將buf指向的緩衝區的nbyte位元組寫入與開啟的檔案描述符fildes關聯的檔案。成功完成時,write()返回實際寫入與fildes關聯的檔案的位元組數。此數字永不大於nbyte。否則,返回-1。
int read (int fildes, const void *buf, int nbyte) − read函式嘗試將與開啟的檔案描述符fildes關聯的檔案的nbyte位元組讀取到buf指向的緩衝區中。成功完成時,write()返回實際寫入與fildes關聯的檔案的位元組數。此數字永不大於nbyte。否則,返回-1。
int fork (void) − fork函式建立一個新的程序。新程序(稱為子程序)將是呼叫程序(父程序)的精確副本。
void bzero (void *s, int nbyte) − bzero函式在字串s中放置nbyte個空位元組。此函式將用於使用空值設定所有套接字結構。
int bcmp (const void *s1, const void *s2, int nbyte) − bcmp函式將位元組字串s1與位元組字串s2進行比較。假定兩個字串的長度均為nbyte位元組。
void bcopy (const void *s1, void *s2, int nbyte) − bcopy函式將nbyte位元組從字串s1複製到字串s2。重疊字串可以正確處理。
void *memset(void *s, int c, int nbyte) − memset函式也用於像bzero一樣設定結構體變數。