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

2021-03-03    分類: 網站建設

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

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

TCP協(xié)議

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

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

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

TCP服務器端和客戶端的運行流程

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

1.創(chuàng)建socket

socket是一個結構體,被創(chuàng)建在內核中

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

2.調用bind函數(shù)

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

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

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

5.調用read/write進行雙向通信

6.關閉accept返回的socket

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

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

廣告

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

網站建設網站維護公司