国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

socket套接字通信 TCP傳輸控制協(xié)議/IP網(wǎng)絡(luò)協(xié)議 5.18

這篇具有很好參考價值的文章主要介紹了socket套接字通信 TCP傳輸控制協(xié)議/IP網(wǎng)絡(luò)協(xié)議 5.18。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

B/S :瀏覽器和服務(wù)器

C/S :客戶機和服務(wù)器

網(wǎng)絡(luò)的體系結(jié)構(gòu):

網(wǎng)絡(luò)的層次結(jié)構(gòu)和每層所使用協(xié)議的集合

網(wǎng)絡(luò)采用分層管理的方法,將網(wǎng)絡(luò)的功能劃分為不同的模塊

OSI模型:

共7種:

			應(yīng)用層:接收用戶的數(shù)據(jù),面向的應(yīng)用程序

?			表示層:邏輯語言轉(zhuǎn)為機器語言,翻譯,加密

?			會話層:針對傳輸?shù)拿恳环N數(shù)據(jù)建立一條虛連接
高層

?			傳輸層:作用 1.區(qū)分流量   2.定義數(shù)據(jù)傳輸方式

?			網(wǎng)絡(luò)層:network  編址  尋址

?			數(shù)據(jù)鏈路層:數(shù)據(jù)鏈路層分為LLC層(邏輯鏈路控制子層)和MAC層(介質(zhì)訪問控制子層)
						二層地址:MAC地址(介質(zhì)訪問控制)-							-物理/硬件/燒錄地址

?			物理層:傳輸介質(zhì)(有線、無線)
地層

TCP/IP協(xié)議:傳輸控制協(xié)議 / 網(wǎng)絡(luò)協(xié)議

用戶模式
應(yīng)用層:使用相應(yīng)的協(xié)議,將封裝好的數(shù)據(jù)提交給傳輸層,或是傳輸層接收數(shù)據(jù)并處理。 FTP頭信息
內(nèi)核模式:
傳輸層:負(fù)責(zé)實現(xiàn)應(yīng)用程序之間的通信服務(wù),又稱端對端通信 TCP頭信息
網(wǎng)絡(luò)層:負(fù)責(zé)主機間的通信,傳輸數(shù)據(jù)包 IP頭信息
網(wǎng)絡(luò)接口層:將二進制轉(zhuǎn)化為數(shù)據(jù)幀,并進行數(shù)據(jù)幀的發(fā)送和接受

數(shù)據(jù)的封裝與傳遞過程:

socket套接字通信 TCP傳輸控制協(xié)議/IP網(wǎng)絡(luò)協(xié)議 5.18

網(wǎng)絡(luò)傳輸數(shù)據(jù)大小user data: 6~1460

網(wǎng)絡(luò)傳輸中容易發(fā)生拆包和粘包,所以接收和發(fā)送的字節(jié)數(shù)要對齊,否則容易傳輸不上

TCP和UDP協(xié)議

共同點:傳輸層,全雙工的

不同點:TCP有連接可靠的,UDP無連接不可靠數(shù)據(jù)容易丟

TCP

是一種面向連接的傳輸層協(xié)議,它能提供高可靠性通信(即數(shù)據(jù)無誤、數(shù)據(jù)無丟失、數(shù)據(jù)無失序、數(shù)據(jù)無重復(fù)到達的通信)

傳輸質(zhì)量較高,輸出大量數(shù)據(jù)

傳輸需要賬號,一對一

傳輸數(shù)據(jù)時較慢

UDP

(User Datagram Protocol)用戶數(shù)據(jù)報協(xié)議,是不可靠的無連接的協(xié)議。在數(shù)據(jù)發(fā)送前,因為不需要進行連接,所以可以進行高效率的數(shù)據(jù)傳輸。

發(fā)送小尺寸數(shù)據(jù),無線網(wǎng)絡(luò)

廣播/組播式通信中,一對多

實時性較高

傳輸數(shù)據(jù)時快,資源消耗小

網(wǎng)絡(luò)編程

1.預(yù)備知識

1)socket套接字

網(wǎng)絡(luò)編程的通用接口

是一種特殊的文件描述符

當(dāng)調(diào)用socket函數(shù)時就會創(chuàng)建一個套接字,并返回套接字的文件描述符

支持面向連接(TCP)與無連接(UDP)

套接字的類型

TCP所用的時流式套接字,用于可靠傳輸,SOCK_STREAM

UDP所用的數(shù)據(jù)報套接字,用于無連接不可靠的,SOCK_DGRAM

SOCK_RAW:原始套接字,直接作用于網(wǎng)絡(luò)層

套接字位于應(yīng)用層與傳輸層之間,OSI模型的會話層和傳輸層之間

2)IP地址

IP地址就是網(wǎng)絡(luò)中主機的標(biāo)識—區(qū)分不同的主機

IP地址:IPv4(32)和IPv6(128)

IP地址表示:點分形式;例:192.168.2.99

IP地址 = 網(wǎng)絡(luò)號 + 主機號

? 網(wǎng)絡(luò)號:IP & 子網(wǎng)掩碼

? 主機號:IP & (-子網(wǎng)掩碼)

同一局域網(wǎng)內(nèi)主機號,網(wǎng)絡(luò)號相同,主機號不同

Linux:

? ifconfig : 查看IP地址

? ifconfig ens33 up/down/IP … 啟動/關(guān)閉/設(shè)置IP

? ping IP/域名 : 檢測網(wǎng)絡(luò)是否聯(lián)通

6、解決有線無無法邊接:顯示W(wǎng)ired Unmanaged
		{
			dashhome/system setting/network。顯示W(wǎng)ired Unmanaged

?			解決方法:
?			sudo vim /etc/NetworkManager/NetworkManager.conf
?			將managed=false
?			改成managed=true
?			然后重啟network-manager
?			sudo service network-manager restart
?			或者 kill掉再啟用:sudo NetworkManager。再不行就重啟:sudo reboot
?		}

IP地址的轉(zhuǎn)換

inet_aton()

字符串->網(wǎng)絡(luò)字節(jié)序

將strptr所指的字符串轉(zhuǎn)換成32位的網(wǎng)絡(luò)字節(jié)序二進制值
    #include <arpa/inet.h>
    int inet_aton(const char *strptr,struct in_addr *addrptr);
inet_addr()

字符串->網(wǎng)絡(luò)字節(jié)序并且返回地址

功能同上,返回轉(zhuǎn)換后的地址。
    in_addr_t inet_addr(const char *strptr);
inet_ntoa()

網(wǎng)絡(luò)字節(jié)序->字符串

32位網(wǎng)絡(luò)字節(jié)序二進制地址轉(zhuǎn)換成點分十進制的字符串。 
    char *inet_ntoa(stuct in_addr inaddr);

3)端口號

同一臺主機上區(qū)分不同任務(wù)的標(biāo)識

一臺主機接收到的數(shù)據(jù)包應(yīng)該轉(zhuǎn)交給哪個任務(wù)來處理

類型:unsigned short (1~65536)

保留端口 1~1023
系統(tǒng)分配端口 1024~5000
自己分配端口 5001~65536

4)字節(jié)序(大小端)

小端存儲:低字節(jié)數(shù)據(jù)存在低地址,高字節(jié)數(shù)據(jù)存儲在高地址

? 先存fd

大端存儲:低字節(jié)數(shù)據(jù)存在高地址,高字節(jié)數(shù)據(jù)存儲在低地址

? 先存fa

unsigned int a = 0xfafbfcfd
    fa高字節(jié)數(shù)據(jù)
    fd低字節(jié)數(shù)據(jù)
    
    /*===============================================
*   文件名稱:zijiexu.c
*   創(chuàng) 建 者:memories 
*   創(chuàng)建日期:2023年05月18日
*   描    述:
================================================*/
    
 地址由低到高存儲,如果存的是fd則是小段存儲
    
#include <stdio.h>

int main(int argc, char *argv[])
{ 
    unsigned int a = 0xfafbfcfd;
    unsigned char *p = (unsigned char*)&a;
    printf("*p=%x\n",*p);//%x表示十六進制

    return 0;
} 

hqyj@ubuntu:~/5.18$ gcc zijiexu.c
hqyj@ubuntu:~/5.18$ ./a.out 
*p=fd
 

網(wǎng)絡(luò)傳輸統(tǒng)統(tǒng)使用大端序,所以大端序也稱為網(wǎng)絡(luò)字節(jié)序

主機一般使用小端序,所以小端序也稱為主機字節(jié)序文章來源地址http://www.zghlxwxcb.cn/news/detail-449953.html

網(wǎng)絡(luò)字節(jié)序和主機字節(jié)序的轉(zhuǎn)換
主機字節(jié)序到網(wǎng)絡(luò)字節(jié)序
u_long htonl (u_long hostlong);
u_short htons (u_short short);

網(wǎng)絡(luò)字節(jié)序到主機字節(jié)序
u_long ntohl (u_long hostlong);
u_short ntohs (u_short short);

2.TCP網(wǎng)絡(luò)編程框架

類似于app是客戶端,app中的內(nèi)容是服務(wù)器提供的

***服務(wù)器(server)流程***					

socket ---- 創(chuàng)建套接字,兩者都要創(chuàng)建
bind   ---- 綁定本機地址和端口
listen ---- 設(shè)定監(jiān)聽套接字,檢測是否有客戶端訪問服務(wù)器
accept ---- 接收客戶端的連接,并生成通信套接字

read/write() ---- 接收/發(fā)送數(shù)據(jù)
close()       ---- 關(guān)閉套接字

-----------------------------------------------------

***客戶端:client***

socket ---- 創(chuàng)建套接字,兩者都要創(chuàng)建
connect ---- 主動連接服務(wù)器


write/read() ---- 發(fā)送/接收數(shù)據(jù)
close()      ---- 關(guān)閉套接字







3.網(wǎng)絡(luò)編程接口

1)socket()

作用:創(chuàng)建套接字
函數(shù):
	#include <sys/types.h>          /* See NOTES */
    #include <sys/socket.h>
int socket(int domain, int type, int protocol);

參數(shù):
	domain:地址族:AF_INET:IPv4 internel protocol
	type:套接字類型
			SOCK_STREAM:流式套接字 TCP
			SOCK_DGRAM:數(shù)據(jù)報套接字 UDP
	protocol:0
返回值:
	成功:套接字文件描述符
	失?。?span id="n5n3t3z"    class="token operator">-1,并設(shè)置error

2)bind()

作用:綁定本機地址和端口
函數(shù):
		#include <sys/types.h>          
       #include <sys/socket.h>
    
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

參數(shù):
    sockfd:套接字文件描述符
    addr:地址結(jié)構(gòu)體
    addrlen:地址長度
返回值:
	成功:0
	失敗:-1,并設(shè)置error
    
地址結(jié)構(gòu):
    struct sockaddr {  //通用地址
               sa_family_t sa_family;
               char        sa_data[14];
           }

    struct sockaddr_in { //IPv4地址結(jié)構(gòu)
               sa_family_t    sin_family; /* address family: AF_INET */
               in_port_t      sin_port;   /* port in network byte order */
               struct in_addr sin_addr;   /* internet address */
           };

          	 /* Internet address. */
      struct in_addr { //網(wǎng)絡(luò)字節(jié)序
               uint32_t       s_addr;     /* address in network byte order */
           };


例如:
    //用IPv4結(jié)構(gòu)體
    struct sockaddr_in srvaddr;
	memset(&srvaddr,0,sizeof(srvaddr));
	srvaddr.sin_family = AF_INET;//指定地址族為IPv4的地址
	srvaddr.sin_port = htons(6666);//端口號
	srvaddr.sin_addr.s_addr = inet_addr("192.168.2.84");//將點分式的字符串轉(zhuǎn)化32位的網(wǎng)絡(luò)字節(jié)序

	bind(sockfd,(struct sockaddr*)&srvaddr,sizeof(srvaddr));

3)listen

作用:設(shè)置監(jiān)聽套接字
函數(shù):
	#include <sys/types.h>          /* See NOTES */
    #include <sys/socket.h>

    int listen(int sockfd, int backlog);
參數(shù):	
    sockfd:套接字描述符
    backlog:監(jiān)聽隊列長度(>0)
返回值:
	成功:0
	失?。?span id="n5n3t3z"    class="token operator">-1,并設(shè)置error

4)accept()

作用:接收客戶端的連接,并生成通信套接字
函數(shù):
    
		#include <sys/types.h>          /* See NOTES */       #include <sys/so
    
    cket.h>

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

參數(shù):
    sockfd:套接字文件描述符
    addr:客戶端地址結(jié)構(gòu)體
    addrlen:客戶端地址長度
    當(dāng)不需要知道連接的客戶端是誰時,第23參數(shù)都可以設(shè)置NULL
返回值:
	成功:連接成功的通信套接字
	失?。?span id="n5n3t3z"    class="token operator">-1,并設(shè)置error
服務(wù)器套接字:
監(jiān)聽套接字(普通套接字轉(zhuǎn)為監(jiān)聽套接字):用于監(jiān)聽、連接
通信套接字:用于通信(發(fā)送、接收)
/*===============================================
*   文件名稱:server.c
*   創(chuàng) 建 者:memories 
*   創(chuàng)建日期:2023年05月18日
*   描    述:
================================================*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <unistd.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{ 
    //1.創(chuàng)建套接字
    int sockfd = socket(AF_INET,SOCK_STREAM,0);
    if(sockfd<0)
    {
        perror("socket");
        return -1;
    }
    printf("socket-----------------\n");
    //2.綁定本機地址和端口
     //用IPv4結(jié)構(gòu)體
    struct sockaddr_in srvaddr;
	memset(&srvaddr,0,sizeof(srvaddr));
	srvaddr.sin_family = AF_INET;//指定地址族為IPv4的地址
	srvaddr.sin_port = htons(5429);//端口號
	srvaddr.sin_addr.s_addr = inet_addr("192.168.2.84");//將點分式的字符串轉(zhuǎn)化32位的網(wǎng)絡(luò)字節(jié)序

	if(0 > bind(sockfd,(struct sockaddr*)&srvaddr,sizeof(srvaddr)))
    {
        perror("bind");
        return -1;
    }
    printf("bind-----------------\n");
    //3.設(shè)置監(jiān)聽套接字
    if(0>listen(sockfd,5))//必須寫大于1的整數(shù)
    {
        perror("listen");
        return -1;
    }
    printf("listen-----------------\n");
    //4.接受客戶端的連接,并生成通信套接字
    int connfd = accept(sockfd,NULL,NULL);
    if(connfd < 0)
    {
        perror("accept");
        return -1;
    }
    printf("accept-----------------\n");
    //5.與客戶端通信
    int ret;
    char buf[1024];
    while(1)
    {
        memset(buf,0,sizeof(buf));
        ret = read(connfd,buf,sizeof(buf));
        if(ret < 0)
        {
            perror("read");
            break;
        }
        else if(ret == 0)
        {
            printf("write close\n");
            break;
        }
        printf("recv:%s\n",buf);

        if(0 > write(connfd,buf,ret))
        {
            perror("write");
            return -1;
        }
    }
    //6.關(guān)閉套接字
    close(sockfd);
    close(connfd);
    return 0;
} 

/*===============================================
*   文件名稱:client.c
*   創(chuàng) 建 者:memories 
*   創(chuàng)建日期:2023年05月18日
*   描    述:
================================================*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{ 
    //1.創(chuàng)建套接字
    int sockfd = socket(AF_INET,SOCK_STREAM,0);
    if(sockfd<0)
    {
        perror("socket");
        return -1;
    }
    printf("sockfd:%d\n",sockfd);
    printf("socket------------\n");
    //2.主動連接服務(wù)器
    struct sockaddr_in sockst;
    sockst.sin_family = AF_INET;
    sockst.sin_port = htons(5429);
    sockst.sin_addr.s_addr = inet_addr("192.168.2.84");
    int conn = connect(sockfd,(struct sockaddr*)&sockst,sizeof(sockst));
    if(conn <0)
    {
        perror("connect");
        return -1;
    }
    while(1)
    {
       char buf[1024]={0};
       fgets(buf,sizeof(buf),stdin);
       write(sockfd,buf,strlen(buf));
       if(strncmp(buf,"quit",4)==0)
       {
           break;
       }
    }
    //3.關(guān)閉套接字通信
    close(sockfd);
    return 0;
} 

hqyj@ubuntu:~/5.18$ gcc client.c
hqyj@ubuntu:~/5.18$ ./a.out 
sockfd:3
socket------------
你好
?? 

hqyj@ubuntu:~/5.18$ gcc server.c
hqyj@ubuntu:~/5.18$ ./a.out 
socket-----------------
bind-----------------
listen-----------------
accept-----------------
recv:你好

recv:??

    

到了這里,關(guān)于socket套接字通信 TCP傳輸控制協(xié)議/IP網(wǎng)絡(luò)協(xié)議 5.18的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • python3套接字編程之socket和socketserver(TCP和UDP通信)

    python3套接字編程之socket和socketserver(TCP和UDP通信)

    socket和socketserver是python3中socket通信模塊,關(guān)于其使用做如下總結(jié)。 目錄 1.socket 1.1模塊引入 1.2套接字獲取 1.3套接字接口 1.3.1 服務(wù)端 1.3.2 客戶端套接字函數(shù) 1.3.3 公共套接字函數(shù) 1.3.4 面向鎖的套接字方法 1.3.5 面向文件的套接字的函數(shù) 2.socketserver 3.TCP 3.1 socket類型TCP 3.2 sockets

    2024年02月15日
    瀏覽(33)
  • TCP/IP網(wǎng)絡(luò)編程(二) 套接字協(xié)議及其數(shù)據(jù)傳輸特性

    關(guān)于協(xié)議 如果相隔比較遠的兩人進行通話,必須先決定通話方式,如果一方選擇電話,另一方也必須選擇電話,否則接受不到消息。 總之,協(xié)議就是為了完成數(shù)據(jù)交換而定好的約定。 創(chuàng)建套接字 協(xié)議族 通過socket函數(shù)的第一個參數(shù)傳遞套接字中使用的協(xié)議分類信息,此協(xié)議

    2024年02月10日
    瀏覽(92)
  • Linux下基于TCP協(xié)議的Socket套接字編程(客戶端&服務(wù)端)入門詳解

    Linux下基于TCP協(xié)議的Socket套接字編程(客戶端&服務(wù)端)入門詳解

    寫在前面: 本篇博客探討實踐環(huán)境如下: 1.操作系統(tǒng): Linux 2.版本(可以通過命令 cat /etc/os-release 查看版本信息):PRETTY_NAME=“CentOS Linux 7 (Core)” 編程語言:C 常常說socket 、套接字 那么socket 到底指的是什么? socket 本質(zhì)上是一個抽象的概念,它是一組用于 網(wǎng)絡(luò)通信的 API , 提供

    2024年02月01日
    瀏覽(19)
  • 【C/C++套接字編程】TCP協(xié)議通信的簡單實現(xiàn)

    目錄 前言 一、TCP_Server.cpp 二、TCP_Client.cpp 三、TCP Server.cpp (多線程) 總結(jié) 系列博客 【C/C++套接字編程】套接字的基本概念與基礎(chǔ)語法_Mr_Fmnwon的博客-CSDN博客 【C/C++套接字編程】TCP通信實驗_Mr_Fmnwon的博客-CSDN博客 【C/C++套接字編程】UDP協(xié)議通信的簡單實現(xiàn)_Mr_Fmnwon的博客-CSDN博

    2024年02月09日
    瀏覽(22)
  • 「網(wǎng)絡(luò)編程」第二講:網(wǎng)絡(luò)編程socket套接字(三)_ 簡單TCP網(wǎng)絡(luò)通信程序的實現(xiàn)

    「網(wǎng)絡(luò)編程」第二講:網(wǎng)絡(luò)編程socket套接字(三)_ 簡單TCP網(wǎng)絡(luò)通信程序的實現(xiàn)

    「前言」文章是關(guān)于網(wǎng)絡(luò)編程的socket套接字方面的,上一篇是網(wǎng)絡(luò)編程socket套接字(二),下面開始講解!? 「歸屬專欄」網(wǎng)絡(luò)編程 「主頁鏈接」個人主頁 「筆者」楓葉先生(fy) 「楓葉先生有點文青病」「每篇一句」 I?do?not?know?where?to?go,but?I?have?been?on?the?road. 我不知

    2024年02月11日
    瀏覽(29)
  • 「網(wǎng)絡(luò)編程」第二講:socket套接字(四 - 完結(jié))_ Linux任務(wù)管理與守護進程 | TCP協(xié)議通訊流程

    「網(wǎng)絡(luò)編程」第二講:socket套接字(四 - 完結(jié))_ Linux任務(wù)管理與守護進程 | TCP協(xié)議通訊流程

    「前言」文章是關(guān)于網(wǎng)絡(luò)編程的socket套接字方面的,上一篇是網(wǎng)絡(luò)編程socket套接字(三),這篇續(xù)上篇文章的內(nèi)容,下面開始講解!? 「歸屬專欄」網(wǎng)絡(luò)編程 「主頁鏈接」個人主頁 「筆者」楓葉先生(fy) 「楓葉先生有點文青病」「句子分享」 Time?goes?on?and?on,?never?to?an?

    2024年02月10日
    瀏覽(47)
  • 【Java】網(wǎng)絡(luò)編程與Socket套接字、UDP編程和TCP編程實現(xiàn)客戶端和服務(wù)端通信

    【Java】網(wǎng)絡(luò)編程與Socket套接字、UDP編程和TCP編程實現(xiàn)客戶端和服務(wù)端通信

    為什么需要網(wǎng)絡(luò)編程? 現(xiàn)在網(wǎng)絡(luò)普及程序越來越高,網(wǎng)絡(luò)上保存著我們?nèi)粘I钪行枰母鞣N資源,使用程序通過網(wǎng)絡(luò)來獲取這些資源的過程就需要網(wǎng)絡(luò)編程來實現(xiàn)。 什么是網(wǎng)絡(luò)編程? 網(wǎng)絡(luò)編程,指網(wǎng)絡(luò)上的主機,通過不同的進程以程序的方式實現(xiàn)網(wǎng)絡(luò)通信(網(wǎng)絡(luò)數(shù)據(jù)傳輸)

    2024年02月17日
    瀏覽(90)
  • 網(wǎng)卡收發(fā)包系統(tǒng)結(jié)構(gòu)收發(fā)包流程,tcp/ip協(xié)議,socket套接字緩沖區(qū),滑動窗口,mtu/mss

    網(wǎng)卡收發(fā)包系統(tǒng)結(jié)構(gòu)收發(fā)包流程,tcp/ip協(xié)議,socket套接字緩沖區(qū),滑動窗口,mtu/mss

    MTU和MSS的區(qū)別 TCP 的 MTU MSS MTU是在數(shù)據(jù)鏈路層的載荷大小也就是傳給網(wǎng)絡(luò)層的大小,mss是在傳輸層的載荷大小也就是傳給應(yīng)用層的大小 mss是根據(jù)mtu得到的 1、MTU: Maximum Transmit Unit,最大傳輸單元,即物理接口(數(shù)據(jù)鏈路層)提供給其上層(通常是IP層)最大一次傳輸數(shù)據(jù)的大

    2024年02月08日
    瀏覽(19)
  • 【網(wǎng)絡(luò)協(xié)議】聊聊套接字socket

    【網(wǎng)絡(luò)協(xié)議】聊聊套接字socket

    網(wǎng)絡(luò)編程我們知道是通過socket進行編程的,其實socket也是基于TCP和UDP協(xié)議進行編程的。但是在socket層面是感知不到下層的,所以在設(shè)置參數(shù)的時候,其實是端到端協(xié)議智商的網(wǎng)絡(luò)層和傳輸層。TCP是數(shù)據(jù)流所以設(shè)置為SOCK_STREAM,而UDP是基于數(shù)據(jù)報的,設(shè)置為SOCK_DGRAM 整體流程其實

    2024年02月07日
    瀏覽(27)
  • 套接字通信(附帶單線程TCP套接字通信代碼)

    套接字通信(附帶單線程TCP套接字通信代碼)

    1. 概念 1.1 局域網(wǎng)和廣域網(wǎng) 局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)是兩種不同范圍的計算機網(wǎng)絡(luò),它們用于連接多臺計算機以實現(xiàn)數(shù)據(jù)共享和通信。 局域網(wǎng)(LAN): 定義: 局域網(wǎng)是一個較小范圍內(nèi)的網(wǎng)絡(luò),通常限定在某個地理區(qū)域,比如一個辦公室、學(xué)校或者家庭。 范圍: LAN 的范

    2024年01月21日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包