色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TCP/UDP網(wǎng)絡(luò)編程的基礎(chǔ)知識合集1

jf_78858299 ? 來源:百問科技 ? 作者:韋東山 ? 2023-05-18 17:31 ? 次閱讀

本文主要記錄TCP/UDP網(wǎng)絡(luò)編程的基礎(chǔ)知識,采用TCP/UDP實現(xiàn)宿主機和目標(biāo)機之間的網(wǎng)絡(luò)通信

內(nèi)容目錄

  1. 目標(biāo)

    2.Linux網(wǎng)絡(luò)編程基礎(chǔ)

    2.1 嵌套字2.2 端口

    2.3 網(wǎng)絡(luò)地址

    2.3.1 網(wǎng)絡(luò)地址的格式

    2.3.2 網(wǎng)絡(luò)地址的轉(zhuǎn)換

    2.4 字節(jié)序

    3.TCP

    3.1 TCP流程圖

    3.2 TCP步驟分析

    3.3 TCP完整代碼

    3.4 測試結(jié)果

    4.UDP

    4.1 UDP流程圖

    4.2 UDP步驟分析

    4.3 UDP完整代碼

    4.4 測試結(jié)果

1. 目標(biāo)

實現(xiàn)讓兩個設(shè)備通過網(wǎng)絡(luò)傳輸數(shù)據(jù),比如開發(fā)板和Linux主機之間傳數(shù)據(jù),

以后就可以實現(xiàn)開發(fā)板通過網(wǎng)絡(luò)上報數(shù)據(jù)或者 主機通過網(wǎng)絡(luò)控制開發(fā)板

此外,暫時不想關(guān)心具體的網(wǎng)絡(luò)模型,更注重于網(wǎng)絡(luò)相關(guān)函數(shù)的直接使用。

2.Linux網(wǎng)絡(luò)編程基礎(chǔ)

2.1 嵌套字

多個TCP連接或者多個應(yīng)用程序進程 可能需要同一個TCP端口傳輸數(shù)據(jù)。

為了區(qū)分不同應(yīng)用程序進程和連接,許多計算機操作系統(tǒng)為應(yīng)用程序與TCP/IP交互提供了稱為 嵌套字(Socket)接口

Linux中的網(wǎng)絡(luò)編程正是通過Socket接口實現(xiàn)的,Socket是一種文件描述符。

常用的TCP/IP有以下三種類型的嵌套字:

  • 流式嵌套字(SOCK_STREAM)

    用于提供面向連接的、可靠的數(shù)據(jù)傳輸服務(wù),即使用TCP進行傳輸。

  • 數(shù)據(jù)報嵌套字(SOCK_DGRAM

    用于提供無連接的服務(wù),即使用UDP進行傳輸。

  • 原始嵌套字(SOCK_RAW)

    可以讀寫內(nèi)核沒有處理的IP數(shù)據(jù)報,而流式嵌套字只能讀取TCP的數(shù)據(jù),數(shù)據(jù)報嵌套字只能讀取UDP的數(shù)據(jù)。

因此,如果要訪問其它協(xié)議發(fā)送的數(shù)據(jù)必須使用原始嵌套字,它允許對底層協(xié)議(如IP或ICMP)直接訪問。

2.2 端口

TCP/IP協(xié)議中的端口,端口號的范圍從0~65535。

一類是由互聯(lián)網(wǎng)指派名字和號碼公司ICANN負(fù)責(zé)分配給一些常用的應(yīng)用程序固定使用的“周知的端口”,其值一般為0~1023。例如http的端口號是80,F(xiàn)TP為21,SSH為22,Telnet為23等。

還有一類是用戶自己定義的,通常是大于1024的整型值。

2.3 網(wǎng)絡(luò)地址

網(wǎng)絡(luò)通信,歸根到底還是進程間的通信(不同計算機上的進程間通信)。

在網(wǎng)絡(luò)中,每一個節(jié)點(計算機或路由)都有一個網(wǎng)絡(luò)地址,如192.168.1.4,也就是IP地址。

兩個進程通信時,首先要確定各自所在的網(wǎng)絡(luò)節(jié)點的網(wǎng)絡(luò)地址。

但是,網(wǎng)絡(luò)地址只能確定進程所在的計算機,而一臺計算機上很可能同時運行著多個進程,所以僅憑網(wǎng)絡(luò)地址還不能確定到底是和網(wǎng)絡(luò)中的哪一個進程進行通信,因此套接口中還需要包括其他的信息,也就是端口號(PORT)。

在一臺計算機中,一個端口號一次只能分配給一個進程,也就是說,在一臺計算機中,端口號和進程之間是一一對應(yīng)關(guān)系。

所以, 使用端口號和網(wǎng)絡(luò)地址的組合可以唯一的確定整個網(wǎng)絡(luò)中的一個網(wǎng)絡(luò)進程

例如,如網(wǎng)絡(luò)中某一臺計算機的IP為192.168.1.4,操作系統(tǒng)分配給計算機中某一應(yīng)用程序進程的端口號為1500,則此時192.168.1.4 1500就構(gòu)成了一個套接口。

2.3.1 網(wǎng)絡(luò)地址的格式

在Socket程序設(shè)計中,struct sockaddr用于記錄網(wǎng)絡(luò)地址,其格式如下:

1struct sockaddr
2{
3     unsigned short sa_family; /*協(xié)議族,采用AF_XXX的形式,例如AF_INET(IPv4協(xié)議族)*/
4     char sa_data[14]; /*14字節(jié)的協(xié)議地址,包含該socket的IP地址和端口號。*/
5};

但在實際編程中,并不針對sockaddr數(shù)據(jù)結(jié)構(gòu)進行操作,而是用與其等價的sockaddr_in數(shù)據(jù)結(jié)構(gòu):

1struct sockaddr_in
2{
3     short int sa_family; /*地址族*/
4     unsigned short int sin_port; /*端口號*/
5     struct in_addr sin_addr; /*IP地址*/
6     unsigned char sin_zero[8]; /*填充0 以保持與struct sockaddr同樣大小*/
7};

2.3.2 網(wǎng)絡(luò)地址的轉(zhuǎn)換

IP地址通常用數(shù)字加點(如192.168.1.4)表示,而在struct in_addr中使用的式32位整數(shù)表示。因此,Linux提供如下函數(shù)進行兩者之間的轉(zhuǎn)換:

  • inet_aton()函數(shù):

所需要頭文件

#include

#include

#include

函數(shù)格式

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

函數(shù)功能

將a.b.c.d字符串形式的IP地址轉(zhuǎn)換成32位網(wǎng)絡(luò)序號IP地址;

*cp:存放字符串形式的IP地址的指針

*inp:存放32位的網(wǎng)絡(luò)序號IP地址

返回值

轉(zhuǎn)換成功,返回非0,否則返回0;

  • inet_ntoa()函數(shù):客戶機端:

所需要頭文件

#include

#include

#include

函數(shù)格式

char *inet_ntoa(struct in_addr in);

函數(shù)功能

將32位網(wǎng)絡(luò)序號IP地址轉(zhuǎn)換成a.b.c.d字符串形式的IP地址;

in:Internet主機地址的結(jié)構(gòu)

返回值

轉(zhuǎn)換成功,返回一個字符指針,否則返回NULL;

2.4 字節(jié)序

不同的CPU采用對變量的字節(jié)存儲順序可能不同。

常用的X86結(jié)構(gòu)是小端模式,很多的ARMDSP都為小端模式,即內(nèi)存的低地址存儲數(shù)據(jù)的低字節(jié),高地址存儲數(shù)據(jù)的高字節(jié)。

KEIL C51則為大端模式,內(nèi)存的高地址存儲數(shù)據(jù)的低字節(jié),低地址存儲數(shù)據(jù)高字節(jié)。

對于網(wǎng)絡(luò)傳輸來說,數(shù)據(jù)順序必須是一致的,網(wǎng)絡(luò)字節(jié)順序采用大端字節(jié)序方式。

下面是四個常用的轉(zhuǎn)換函數(shù):

主機轉(zhuǎn)網(wǎng)絡(luò):

  • htons()函數(shù):

所需要頭文件

#include

函數(shù)格式

unsigned short int htons(unsigned short int hostshort)

函數(shù)功能

參數(shù)指定的16位主機(host)字符順序轉(zhuǎn)換成網(wǎng)絡(luò)(net)字符順序;

hostshort:待轉(zhuǎn)換的16位主機字符順序數(shù)

返回值

返回對應(yīng)的網(wǎng)絡(luò)字符順序數(shù);

  • htonl()函數(shù):

所需要頭文件

#include

函數(shù)格式

unsigned long int htons(unsigned long int hostlong)

函數(shù)功能

將參數(shù)指定的32位主機(host)字符順序轉(zhuǎn)換成網(wǎng)絡(luò)(net)字符順序;

hostlong:待轉(zhuǎn)換的32位主機字符順序數(shù)

返回值

返回對應(yīng)的網(wǎng)絡(luò)字符順序數(shù);


網(wǎng)絡(luò)轉(zhuǎn)主機:

  • ntohs()函數(shù):

所需要頭文件

#include

函數(shù)格式

unsigned short int ntohs(unsigned short int netshort)

函數(shù)功能

將參數(shù)指定的16位網(wǎng)絡(luò)(net)字符順序轉(zhuǎn)換成主機(host)字符順序;

netshort:待轉(zhuǎn)換的16位網(wǎng)絡(luò)字符順序數(shù)

返回值

返回對應(yīng)的主機字符順序數(shù);

  • ntohl()函數(shù):

所需要頭文件

#include

函數(shù)格式

unsigned long int ntohl(unsigned long int netlong)

函數(shù)功能

將參數(shù)指定的32位網(wǎng)絡(luò)(net)字符順序轉(zhuǎn)換成主機(host)字符順序;

netshort:待轉(zhuǎn)換的32位網(wǎng)絡(luò)字符順序數(shù)

返回值

返回對應(yīng)的主機字符順序數(shù);

3.TCP

TCP有專門的傳遞保證機制,收到數(shù)據(jù)時會自動發(fā)送確認(rèn)消息,發(fā)送方收到確認(rèn)消息后才會繼續(xù)發(fā)送消息,否則繼續(xù)等待。

這樣的好處是傳輸?shù)臄?shù)據(jù)是可靠的,此外它是有連接的傳輸,大多數(shù)網(wǎng)絡(luò)傳輸都是用的TCP。

3.1 TCP流程圖

3.2 TCP步驟分析

程序分為服務(wù)器端和客戶機端,先從服務(wù)器端開始分析。

  • 服務(wù)器端:

    a. 創(chuàng)建socket

1    sock_fd = socket(AF_INET, SOCK_STREAM, 0);//AF_INET:IPV4;SOCK_STREAM:TCP
2    if (-1 == sock_fd)
3    {
4        fprintf(stderr,"socket error:%s\\n\\a", strerror(errno));
5        exit(1);
6    }

所需要頭文件

#include

#include

函數(shù)格式

int socket(int domain, int type, int protocol);

函數(shù)功能

創(chuàng)建一個套接字;

domain:協(xié)議域(族), 決定了套接字的地址類型 ,例如AF_INET決定了要用IPv4地址(32位)與端口號(16位)的組合。常見的協(xié)議族有: AF_INET 、AF_INET6、AF_LOCAL(或稱AF_UNIX)、AF_ROUTE等;

type: 指定套接字類型SOCK_STREAM (TCP)、 SOCK_DGRAM (UDP)、SOCK_RAW

protocol:指定socket所使用的傳輸協(xié)議編號,通常為0

返回值

若成功,返回一個套接字描述符,否則返回-1;

Socket就是一種文件描述符,和普通的打開文件一樣,需要檢測其返回結(jié)果。

b. 設(shè)置socket

1    memset(&server_addr, 0, sizeof(struct sockaddr_in));//clear
2    server_addr.sin_family = AF_INET;
3    server_addr.sin_addr.s_addr = htonl(INADDR_ANY);//INADDR_ANY:This machine all IP
4    server_addr.sin_port = htons(PORT_NUMBER);

設(shè)置何種協(xié)議族,設(shè)置本機IP和端口,也就有了唯一性。

c. 綁定socket

1    ret = bind(sock_fd, (struct sockaddr *)(&server_addr), sizeof(struct sockaddr));
2    if(-1 == ret)
3    {
4        fprintf(stderr,"bind error:%s\\n\\a", strerror(errno));
5        close(sock_fd);
6        exit(1);
7    }

所需要頭文件

#include

#include

函數(shù)格式

int bind(int sockfd, struct sockaddr *addr, int addrlen);

函數(shù)功能

把套接字綁定到本地計算機的某一個端口上;

sockfd:待綁定的套接字描述符

addr:一個struct sockaddr *指針,指定要綁定給sockfd的協(xié)議地址。內(nèi)容結(jié)構(gòu)由前面的協(xié)議族決定。

addrlen:地址的長度

返回值

若成功,返回0,否則返回-1,錯誤信息存在errno中;

d. 開始監(jiān)聽

1    ret = listen(sock_fd, BACKLOG);
2    if (-1 == ret)
3    {
4        fprintf(stderr,"listen error:%s\\n\\a", strerror(errno));
5        close(sock_fd);
6        exit(1);
7    }

所需要頭文件

#include

#include

函數(shù)格式

int listen(int sockfd, int backlog);

函數(shù)功能

使服務(wù)器的這個端口和IP處于監(jiān)聽狀態(tài),等待網(wǎng)絡(luò)中某一客戶機的連接請求,最大連接數(shù)量為backlog≤128;

sockfd:待監(jiān)聽的套接字描述符

backlog:最大可監(jiān)聽和連接的客戶端數(shù)量

返回值

若成功,返回0,否則返回-1;

e. 阻塞,等待連接

1        addr_len = sizeof(struct sockaddr);
2        new_fd = accept(sock_fd, (struct sockaddr *)&client_addr, &addr_len);
3        if (-1 == new_fd)
4        {
5            fprintf(stderr,"accept error:%s\\n\\a", strerror(errno));
6            close(sock_fd);
7            exit(1);
8        }
1

所需要頭文件

#include

#include

函數(shù)格式

int accept(int sockfd, struct sockaddr *addr, int *addrlen);

函數(shù)功能

接受連接請求,建立起與客戶機之間的通信連接。服務(wù)器處于監(jiān)聽狀態(tài)時,如果某時刻獲得客戶機的連接請求,此時并不是立即處理這個請求,而是將這個請求放在等待隊列中,當(dāng)系統(tǒng)空閑時再處理客戶機的連接請求;

當(dāng)accept函數(shù)接受一個連接時,會返回一個新的socket標(biāo)識符,以后的數(shù)據(jù)傳輸和讀取就要通過這個新的socket編號來處理,原來參數(shù)中的socket也可以繼續(xù)使用,繼續(xù)監(jiān)聽其它客戶機的連接請求;

accept連接成功時,參數(shù)addr所指的結(jié)構(gòu)體會填入所連接機器的地址數(shù)據(jù);

sockfd:待監(jiān)聽的套接字描述符

addr:指向struct sockaddr的指針,用于返回客戶端的協(xié)議地址

addrlen:協(xié)議地址的長度

返回值

若成功,返回一個由內(nèi)核自動生成的一個全新描述字,代表與返回客戶的TCP連接,否則返回-1,錯誤信息存在errno中;

f. 接收數(shù)據(jù)

1    recv_len = recv(new_fd, recv_buf, 999, 0);
 2    if (recv_len <= 0)
 3    {
 4        fprintf(stderr, "recv error:%s\\n\\a", strerror(errno));
 5        close(new_fd);    
 6        exit(1);
 7    }
 8    else
 9    {
10        recv_buf[recv_len] = '\\0';
11        printf("Get msg from client%d: %s\\n", client_num, recv_buf);
12    }

所需要頭文件

#include

#include

函數(shù)格式

int recv(int sockfd, void *buf, size_t len, int flags);

函數(shù)功能

用新的套接字來接收遠(yuǎn)端主機傳來的數(shù)據(jù),并把數(shù)據(jù)存到由參數(shù)buf指向的內(nèi)存空間;

sockfd:sockfd為前面accept的返回值,即new_fd,也就是新的套接字

buf:指明一個緩沖區(qū)

len:指明緩沖區(qū)的長度

flags:通常為0

返回值

若成功,返回接收到的字節(jié)數(shù),另一端已關(guān)閉則返回0,否則返回-1,錯誤信息存在errno中;

g. 關(guān)閉socket

1    close(sock_fd);
2    exit(0);

為了應(yīng)對多個連接,并保證它們之間相互獨立,實際編程中往往還要加入多進程fork()。

讓子進程接收數(shù)據(jù),父進程繼續(xù)監(jiān)聽新的連接。

  • 客戶機端:

a. 創(chuàng)建socket

1    sock_fd = socket(AF_INET, SOCK_STREAM, 0);//AF_INET:IPV4;SOCK_STREAM:TCP
2    if (-1 == sock_fd)
3    {
4        fprintf(stderr,"socket error:%s\\n\\a", strerror(errno));
5        exit(1);
6    }

b. 設(shè)置socket

1    memset(&server_addr, 0, sizeof(struct sockaddr_in));//clear
2    server_addr.sin_family = AF_INET;
3    server_addr.sin_port = htons(PORT_NUMBER);

其中注意的是,這里設(shè)置的socket內(nèi)容是指 希望連接的服務(wù)器IP和端口號信息,IP地址來自用戶的輸入,并轉(zhuǎn)換格式得到。因此,這里的設(shè)置和服務(wù)器的設(shè)置,要保持內(nèi)容上的一致。

1    ret = inet_aton(argv[1], &server_addr.sin_addr);
2    if(0 == ret)
3    {
4        fprintf(stderr,"server_ip error.\\n");
5        close(sock_fd);
6        exit(1);
7    }

c. 連接

1    ret = connect(sock_fd, (const struct sockaddr *)&server_addr, sizeof(struct sockaddr));    
2    if (-1 == ret)
3    {
4        fprintf(stderr,"connect error:%s\\n\\a", strerror(errno));
5        close(sock_fd);
6        exit(1);
7    }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 主機
    +關(guān)注

    關(guān)注

    0

    文章

    998

    瀏覽量

    35178
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1372

    瀏覽量

    79142
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    326

    瀏覽量

    33993
  • 網(wǎng)絡(luò)通信
    +關(guān)注

    關(guān)注

    4

    文章

    808

    瀏覽量

    29848
  • 網(wǎng)絡(luò)編程
    +關(guān)注

    關(guān)注

    0

    文章

    72

    瀏覽量

    10085
收藏 人收藏

    評論

    相關(guān)推薦

    第12章 TCP傳輸控制協(xié)議基礎(chǔ)知識

    知識點主要整理自網(wǎng)絡(luò))12.1 初學(xué)者重要提示12.2 TCP基礎(chǔ)知識參考資料12.3 TCP基礎(chǔ)知識
    發(fā)表于 10-30 08:51

    第16章 UDP用戶數(shù)據(jù)報協(xié)議基礎(chǔ)知識

    ) 16.1 初學(xué)者重要提示 16.2 UDP基礎(chǔ)知識參考資料 16.3 UDP基礎(chǔ)知識點 16.4 TCP
    發(fā)表于 11-02 17:27

    第27章 DNS域名系統(tǒng)基礎(chǔ)知識

    轉(zhuǎn)最新網(wǎng)絡(luò)教程本章節(jié)為大家講解DNS(Domain Name System,域名系統(tǒng)),通過前面章節(jié)對TCPUDP的學(xué)習(xí),需要大家對DNS也有個基礎(chǔ)的認(rèn)識。(本章的知識點主要整理自
    發(fā)表于 11-23 15:50

    網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識推薦

    目錄一、基礎(chǔ)協(xié)議1網(wǎng)絡(luò)分層模型2、協(xié)議劃分3、重點解析1TCP/IP和UDP協(xié)議2)HTTP和HTTPS協(xié)議3)WS和WSS協(xié)議4)SS
    發(fā)表于 07-02 06:56

    TCP(IP)協(xié)議與網(wǎng)絡(luò)編程

    網(wǎng)絡(luò)編程基礎(chǔ)知識--TCP(IP)協(xié)議與網(wǎng)絡(luò)編程
    發(fā)表于 09-01 15:01 ?0次下載

    TCP-IP_Socket網(wǎng)絡(luò)編程

    網(wǎng)絡(luò)編程基礎(chǔ)知識--TCP-IP_Socket網(wǎng)絡(luò)編程
    發(fā)表于 09-01 15:01 ?0次下載

    TCP協(xié)議基礎(chǔ)知識

    TCP 是互聯(lián)網(wǎng)核心協(xié)議之一,本文介紹它的基礎(chǔ)知識
    的頭像 發(fā)表于 10-16 10:29 ?3635次閱讀
    <b class='flag-5'>TCP</b>協(xié)議<b class='flag-5'>基礎(chǔ)知識</b>

    udptcp的區(qū)別在哪里

    主要介紹udptcp的區(qū)別在哪里,以及TCP協(xié)議和UDP協(xié)議為什么會共存?通常我們在說到網(wǎng)絡(luò)編程
    發(fā)表于 12-08 14:08 ?8589次閱讀

    TCP UDPSocket調(diào)試工具應(yīng)用程序和GPRS DTU數(shù)傳應(yīng)用的基礎(chǔ)知識合集

    本文檔的主要內(nèi)容詳細(xì)介紹的是TCP UDPSocket調(diào)試工具應(yīng)用程序和GPRS DTU數(shù)傳應(yīng)用的基礎(chǔ)知識合集
    發(fā)表于 11-14 17:41 ?13次下載
    <b class='flag-5'>TCP</b> UDPSocket調(diào)試工具應(yīng)用程序和GPRS DTU數(shù)傳應(yīng)用的<b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>合集</b>

    tcpudp協(xié)議的異同

    UDP 校驗和則是包含 UDP 首部和數(shù)據(jù)在內(nèi)的校驗結(jié)果。 TCP協(xié)議 TCP協(xié)議基于網(wǎng)絡(luò)層的 IP 協(xié)議提供的是有連接、可靠服務(wù),是基于
    的頭像 發(fā)表于 11-12 14:45 ?4111次閱讀
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b>協(xié)議的異同

    基于Socket的UDPTCP編程解析 1

    TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議是網(wǎng)絡(luò)體系結(jié)TCP/IP模型中傳輸層一層中的兩個不同的通信協(xié)議。 TCP:傳輸控制協(xié)議,
    的頭像 發(fā)表于 05-18 17:22 ?981次閱讀
    基于Socket的<b class='flag-5'>UDP</b>和<b class='flag-5'>TCP</b><b class='flag-5'>編程</b>解析 <b class='flag-5'>1</b>

    基于Socket的UDPTCP編程解析 2

    TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議是網(wǎng)絡(luò)體系結(jié)TCP/IP模型中傳輸層一層中的兩個不同的通信協(xié)議。 TCP:傳輸控制協(xié)議,
    的頭像 發(fā)表于 05-18 17:22 ?670次閱讀
    基于Socket的<b class='flag-5'>UDP</b>和<b class='flag-5'>TCP</b><b class='flag-5'>編程</b>解析 2

    TCP/UDP網(wǎng)絡(luò)編程基礎(chǔ)知識合集2

    本文主要記錄TCP/UDP網(wǎng)絡(luò)編程基礎(chǔ)知識,采用TCP/U
    的頭像 發(fā)表于 05-18 17:31 ?657次閱讀

    TCP/UDP網(wǎng)絡(luò)編程基礎(chǔ)知識合集3

    本文主要記錄TCP/UDP網(wǎng)絡(luò)編程基礎(chǔ)知識,采用TCP/U
    的頭像 發(fā)表于 05-18 17:31 ?807次閱讀
    <b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b><b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>編程</b>的<b class='flag-5'>基礎(chǔ)知識</b><b class='flag-5'>合集</b>3

    TCPUDP的基本區(qū)別

    順序,UDP不保證 UDP應(yīng)用場景: 面向數(shù)據(jù)報方式 網(wǎng)絡(luò)數(shù)據(jù)大多為短消息 擁有大量Client 對數(shù)據(jù)安全性無特殊要求 網(wǎng)絡(luò)負(fù)擔(dān)非常重,但對響應(yīng)速度要求高
    的頭像 發(fā)表于 11-13 15:27 ?4656次閱讀
    <b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>的基本區(qū)別
    主站蜘蛛池模板: 日韩欧美中文字幕在线二视频| 欧美激情久久久久久久大片 | 精品久久电影网| 国产成人精品三级在线| a亚洲在线观看不卡高清| 99精品在线看| 97人妻中文字幕免费视频| 中文字幕视频在线观看| 在线观看亚洲 日韩 国产| 伊人青青久| 亚洲视频第二页| 一本大道熟女人妻中文字幕在线| 亚洲精品无码一区二区三区四虎 | 亚洲.欧美.中文字幕在线观看| 天天靠天天擦天天摸| 色尼姑久久超碰在线| 三级网址在线播放| 色mimi| 丝袜美女自摸| 羞羞在线观看| 亚洲精品国产AV成人毛片| 亚洲精品成人久久久影院| 亚洲色欲色欲WWW在线丝| 夜色私人影院永久入口| 在线电影一区二区| 67194con免费福和视频| 99久久爱看免费观看| freehd另类xxxx喷水| 超清无码波多野吉衣与黑人| 动漫H片在线播放免费高清| 国产大片51精品免费观看| 国产美女影院| 精品无码国产自产在线观看水浒传| 久久精品国产亚洲AV热无遮挡| 蜜芽手机在线观看| 秋霞伦理机在线看片| 无人区在线日本高清免费| 夜月视频直播免费观看| 99re在这里只有精品| 吃奶吸咪咪动态图| 国产小视频国产精品|