UNIX網路程式設計卷一 3 套接字程式設計簡介

2021-08-27 15:45:22 字數 1506 閱讀 3888

1、套接字位址結構

ipv4套接字位址結構

struct in_addr

struct sockaddr_in

2、通用套接字位址結構

struct sockaddr

3、值-結果引數

4、位元組序排序函式

另一種方法是將高序位元組儲存在起始位址,這稱為大端位元組序。

#include

uint32_t htonl(uint32_t hostlong);

uint16_t htons(uint16_t hostshort);

uint32_t ntohl(uint32_t netlong);

uint16_t ntohs(uint16_t netshort);

5、位元組操縱函式

名字以b開頭的一組函式起源於bsd

bzero

bcopy

bcmp

ansi c函式

memset

memcpy

memcmp

6、inet_aton  inet_addr  inet_ntoa

下列函式在點分十進位制數串(101.168.112.96)與它長度為13位的網路位元組序二進位制間轉換ipv4位址

#include

#include

#include

int inet_aton(const char *cp, struct in_addr *inp);

in_addr_t inet_addr(const char *cp);

in_addr_t inet_network(const char *cp);

char *inet_ntoa(struct in_addr in);

struct in_addr inet_makeaddr(int net, int host);

in_addr_t inet_lnaof(struct in_addr in);

in_addr_t inet_netof(struct in_addr in);

inet_aton將cp所指的字串轉換成乙個32位的網路位元組序二進位制值。

inet_ntoa 函式將乙個32位的網路位元組序二進位制ipv4位址轉換成相應的點分十進位制數串。

7、inet_pton   inet_ntop

#include

int inet_pton(int af, const char *src, void *dst);

const char *inet_ntop(int af, const void *src,

char *dst, socklen_t size);

8、readn writen readline

位元組流套接字上的read和write函式所表現的行為不同於通常的檔案io。位元組流套接字上呼叫read或write輸入或輸出的位元組數可能比請求的數量少,然而這不是出錯的狀態。這個現象的原因在於核心中用於套接字的緩衝區可能已達到了極限。此時所需的是呼叫者再次呼叫read或write函式,以輸入或輸出剩餘位元組。

Unix網路程式設計 卷一 套接字聯網API

本書面對的讀者是那些希望自己編寫的程式能夠使用成為套接字 socket 的api進行彼此通訊的人。目錄 0 準備環境 1 簡介 2 傳輸層 tcp udp和sctp 3 套接字程式設計簡介 4 基本tcp套接字程式設計 5 tcp客戶 伺服器程式例子 6 i o復用 select和poll函式 7 ...

UNIX網路程式設計卷1 套接字聯網API

internet一詞有多種含義。一是網際網 internet 採用tcp ip協議族通訊的任何網路都是網際網,網際網路就是乙個網際網。二是網際網路 internet 它是乙個專用名詞,特指從arpanet發展而來的連線全球各個isp的大型網際網。三是作為名詞性修飾詞,這時應根據情況分別譯成 網際網路...

Unix網路程式設計 1 套接字位址結構

ubuntu usr include netinet in.h includestruct in addr struct sockaddr in sin len 結構體長度字段。sin family 協議族字段。可取的值為 af unix 本地通訊 af inet ipv4 af int6 ipv6...