網路程式設計基礎 聽課筆記

2021-08-30 23:20:52 字數 1374 閱讀 2349

socket有三種型別:

sock_stream 基於tcp+ip

sock_dgram 基於udp+ip

sock_raw 直接基於ip

[size=x-large]網路位址[/size]

struct sockaddr用於記錄網路位址

struct sockaddr

//sa_family 協議族,採用"af_***"形式, 如:af_inet(ip協議族)

//s_data 14位元組的特定協議位址

struct socketaddr_in 同樣用於記錄網路位址, 更常用

struct sockaddr_in

[size=x-large]位址轉換[/size]

由"192.168.0.1"的形式轉化為struct in_addr中的32位無符號整形

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

char *inet_ntoa(struct in_addr in)

a代表ascii, n代表network

inet_aton將a.b.c.d的ip位址轉化為32位ip

[size=x-large]位元組序轉換[/size]

網路上統一使用big endien, 高位在前, 先傳輸

htons//unsigned short從主機序列轉換到網路序

htonl//unsigned long從主機序列轉換到網路序

ntohs

ntohl

[size=x-large]ip與主機名[/size]

網路中標誌一台主機可用ip位址, 也可以用主機名

struct hostent *gethostbyname(const char *hostname)

struct hostent

#define h_addr h_addr_list[0];//主機的第乙個ip位址

[size=x-large]socket程式設計函式[/size]

socket 建立乙個socket

bind 將ip和埠號繫結到socket

connect 與伺服器建立連線

listen 設定伺服器能處理的最大連線要求

accept 用來等待來自客戶端的socket請求

send 傳送資料

recv 接受資料

時間程式設計聽課筆記

標頭檔案 time.h 1.獲取日曆時間 time t time time t tloc 返回值和引數的指向time t都是日曆時間 例如 time t t time null 2.時間轉化 轉化為格林威治時間 greenwich mean time struct tm gmtime const t...

檔案程式設計 系統呼叫 聽課筆記

兩種方式 1.系統呼叫 2.c函式庫 系統呼叫 1.建立 int creat const char filename,mode t mode creat hello,0775 2.開啟 int open const char pathname,int flag int open const char...

python 網路程式設計基礎 筆記

第二章 網路客戶端 建立socket tcp client 獲取當前根目錄下檔案列表 s.shutdown 1 資料呼叫shutdown函式才能確保傳送 while 1 buf s.recv 2048 if not len buf breaksys.stdout.write buf 建立socket...