套接字程式設計

2021-10-22 14:10:35 字數 1398 閱讀 8062

1、ipv4 通用套接字的位址結構

struct socketaddr
2、ipv6

3、值->結果引數 有點迷糊

套接字位址結構大小作為乙個指標傳給核心的原因:當函式被核心呼叫時,大小結構是乙個值(value),告訴核心該結構的大小,核心在寫該結構時不會越界。當函式返回時,結構大小是乙個結果(result),告訴程序核心在該結構中究竟儲存了多少資訊。

如果套接字的位址結構是固定長度的,從核心返回的值總是那個固定長度。對於可變長度的套接字位址結構,返回值可能小於該結構的最大長度。

4、位元組排序函式

網路位元組序

常用函式:

uint16_t htons

(uint_16 host16bitvalue)

;//返回網路位元組序 s表示short

uint32_t htonl

(uint_32 host32bitvalue)

;//返回網路位元組序 l表示long

uint16_t ntohs

(uint_16 net16bitvalue)

;//返回主機位元組序

uint32_t ntohl

(uint_32 net32bitvalue)

;//返回主機位元組序

5、位元組操縱函式

bzero

bcopy

bcmp

6、可能使用的轉換函式

int

inet_aton

(const

char

* ptr,

struct in_addr *addrptr)

;//若字串有效則返回1,否則返回0 ipv4

in_addr_t inet_addr

(const

char

* ptr)

;//若字串有效,則返回32位二進位制網路位元組序ipv4位址,已廢棄

char

*inet_ntoa

(struct int_addr inaddr)

;//返回指向乙個點分十進位制數串的指標 ipv4

intinet_pton

(int famliy,

const

char

*strptr,

void

* addrptr)

;//ipv4 和 ipv6通用

const

char

*inet_ntop

(int famliy,

const

void

* addrptr,

char

*strptr, size_t len)

;//ipv4 和 ipv6通用

套接字程式設計

例1 建立sockaddr in結構體變數,並繫結套接字 建立套接字 int serv sock socket af inet,sock stream,ipproto tcp 建立sockaddr in結構體變數 struct sockaddr in serv addr memset serv ad...

python套接字程式設計 python套接字程式設計

服務端 usr bin python coding utf 8 import socket s socket.socket host socket.gethostname port 12345 s.bind host,port s.listen 5 while true c,addr s.accep...

linux套接字程式設計

套接字是用來進行主機間通訊的,linux的socket和windows差不多,雖然有一定的區別,但是其基本原理與結構是一樣的,因此,一台windows的主機可以和一台linux的主機通過套接字進行通訊。socket採用客戶端與伺服器端的模式使兩台主機進行通訊。首先,伺服器端呼叫函式socket新建乙...