自己動手用c語言寫一個基于服務(wù)器和客戶端

2021-03-03    分類: 網(wǎng)站建設(shè)

如果想要自己寫一個服務(wù)器和客戶端,我們需要掌握一定的網(wǎng)絡(luò)編程技術(shù),個人認為,網(wǎng)絡(luò)編程中最關(guān)鍵的就是這個東西——socket(套接字)。

socket(套接字):簡單來講,socket就是用于描述IP地址和端口,是一個通信鏈的句柄,可以用來實現(xiàn)不同虛擬機或不同計算機之間的通信。

TCP協(xié)議

TCP協(xié)議:是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由IETF的RFC 793定義。在簡化的計算機網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能。

關(guān)鍵詞:三次握手,可靠,基于字節(jié)流。

可能有朋友會問,TCP就這么簡單一句話嗎?當然不是,TCP作為非常重要的傳輸協(xié)議,細節(jié)知識是很多的,細講起來這一篇文章怕是不夠。不過在本篇內(nèi)容中,我們只需了解他的幾個關(guān)鍵詞特性,就能很好的理解下面的內(nèi)容。

TCP服務(wù)器端和客戶端的運行流程

如圖,這是一個完整的TCP服務(wù)器——客戶端的運行流程圖,其實我個人認為程序啊,不管哪個語言都是一樣,核心就在于算法的設(shè)計和函數(shù)的調(diào)用。那么圖中的函數(shù)都是什么意思呢?

1.創(chuàng)建socket

socket是一個結(jié)構(gòu)體,被創(chuàng)建在內(nèi)核中

 sockfd=socket(AF_INET,SOCK_STREAM,0); //AF_INT:ipv4, SOCK_STREAM:tcp協(xié)議

2.調(diào)用bind函數(shù)

將socket和地址(包括ip、port)綁定。

需要定義一個結(jié)構(gòu)體地址,以便于將port的主機字節(jié)序如果無請求,將會阻塞,直到獲得連接

 int fd=accept(sockfd, NULL,NULL);//這邊采用默認參數(shù)

5.調(diào)用read/write進行雙向通信

6.關(guān)閉accept返回的socket

當前題目:自己動手用c語言寫一個基于服務(wù)器和客戶端
本文鏈接:http://www.bm7419.com/news40/103890.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站導航、網(wǎng)站制作、關(guān)鍵詞優(yōu)化、網(wǎng)站營銷、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司