網路通訊2 TCP的函式

2021-07-24 10:36:29 字數 2231 閱讀 3461

1.inet_addr()函式

函式作用:

十進位制轉換成二進位制

函式原型:

int inet_addr(const char *strptr);2.inet_pton函式

函式原型:

int inet_pton(int family,

const char *src,void *dst);

引數:

family:af_inet,ipv4協議; af_inet6,ipv6協議;

src:要轉換的ip位址字串;

dst:存放轉換後的位址的緩衝區

返回值:

成功:0;

出錯:-1;

3.sock

函式原型:

int sock(int family,

int type,int proto);

引數:

family:af_inet,ipv4協議; af_inet6,ipv6協議;

type:sock_stream:tcp

sock_dgram:udp

sock_ram:提供原始網路協議訪問

protocol:傳輸協議編號,設為0

返回值:

成功:返回socket套接字描述符;

出錯:-1

4.bind

函式作用:繫結ip位址

函式原型:

int bind(int sockfd,

struct sockaddr *myaddr,int addrlen);

struct sockaddr 

;struct sockaddr_in

;

返回值:

成功:0;

出錯:-1;

5.connect

函式作用:建立socket鏈結,通常客戶端鏈結伺服器使用。

函式原型:

int connect(int sockfd,

struct sockaddr* ser_addr,int addrlen);6.listen

引數:sockfd:套接字描述符;

backlog:允許接入的客戶端數目

返回值:

成功:0;

出錯:-1

7.accept

函式作用:接受socket網路鏈結,客戶端鏈結,3次握手在這裡

函式原型:

int accept(int sockfd,

struct sockaddr* ser_addr,int* addrlen);

引數:addr:鏈結成功,填充遠端客戶機的位址

addrlen:struct sockaddr的長度

返回值:

成功:返回新的socket套接字描述符;

出錯:-1

8.send

函式作用:經過socket傳送資料,向對方傳送資料

函式原型:

int send(int sock_fd,

const void* msg,unsigned int flags);

引數:sock_fd:accept建立起來的socket‪鏈結描述符,連線遠方的ip位址

msg:傳送的資料

flags:設為0

返回值:

成功:返回實際傳送出去的位元組數;

出錯:-1

9.recv

函式作用:經過socket接收資料

函式原型:

int recv(int sock_fd,

void* buf,int len,unsigned int flags);

引數:sock_fd:accept以後的socket套接字描述符

buf:存放位址

len:資料長度(接收資料的最大長度)

flags:設為0

返回值:

成功:返回成功接收的位元組數;

出錯:-1

網路通訊協議(2)TCP協議的一些事

前面複習了一遍五層網路模型及一些相關的協議,了解了網路通訊的大致樣子 網路通訊協議 1 網路通訊 tcp協議 seq ack 重傳機制 三次握手 四次揮手 總結傳輸控制協議 tcp,transmission control protocol 是一種面向連線的 可靠的 基於位元組流的傳輸層通訊協議 t...

Python 網路程式設計2 TCP

tcp協議全稱 傳輸控制協議,顧名思義,就是要對資料的傳輸進行一定的控制 tcp協議的特點 1 相對於傳輸層的udp協議,tcp協議的特點是面向連線的 可靠的傳輸和位元組流。2 使用tcp協議通訊的雙方必須首先建立連線,然後才能開始資料的讀寫。雙方都必須為該連線分配必要的核心資源,以管理連線的狀態和...

linux網路通訊二(TCP)

tcp通訊 流程圖如下 1 建立 socket套接字 相同2 繫結 將建立的socket套接字返回的控制代碼與本機的ip 埠繫結 相同3 監聽 監聽socket include int listen int s,int backlog s 監聽的控制代碼 backlog 監聽的最大數,預設20 成功...