中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

做印章的網(wǎng)站網(wǎng)站推廣服務(wù)

做印章的網(wǎng)站,網(wǎng)站推廣服務(wù),重慶銅牌制作,醫(yī)保微信小程序是什么一、網(wǎng)絡(luò)編程介紹 c編程的應(yīng)用場(chǎng)景在前面分析過(guò),一個(gè)重要的方向就是網(wǎng)絡(luò)編程。一般來(lái)說(shuō),開(kāi)發(fā)者說(shuō)的服務(wù)端編程在c方向上簡(jiǎn)單的可以認(rèn)為是網(wǎng)絡(luò)編程。首先需要說(shuō)明的,本系列不對(duì)網(wǎng)絡(luò)編程的相關(guān)基礎(chǔ)知識(shí)展開(kāi)詳細(xì)的說(shuō)明,因?yàn)檫@種知識(shí)…

一、網(wǎng)絡(luò)編程介紹

c++編程的應(yīng)用場(chǎng)景在前面分析過(guò),一個(gè)重要的方向就是網(wǎng)絡(luò)編程。一般來(lái)說(shuō),開(kāi)發(fā)者說(shuō)的服務(wù)端編程在c++方向上簡(jiǎn)單的可以認(rèn)為是網(wǎng)絡(luò)編程。首先需要說(shuō)明的,本系列不對(duì)網(wǎng)絡(luò)編程的相關(guān)基礎(chǔ)知識(shí)展開(kāi)詳細(xì)的說(shuō)明,因?yàn)檫@種知識(shí)在書(shū)本上太多了。網(wǎng)絡(luò)上各種資料更是滿開(kāi)飛,沒(méi)有必要拷貝來(lái)拷貝去的。特別是一些協(xié)議等的解析說(shuō)明,如果不遇到特定的問(wèn)題不會(huì)深入分析說(shuō)明。
那么最應(yīng)該明白的網(wǎng)絡(luò)編程是什么?那么就得明白網(wǎng)絡(luò)是如何而來(lái)。網(wǎng)絡(luò),從名字上很好理解,一張把“經(jīng)絡(luò)”連接起來(lái)的大網(wǎng)。不過(guò)這個(gè)經(jīng)絡(luò)不是人體中的“經(jīng)絡(luò)”而是一個(gè)個(gè)節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)可以是虛擬的,也可以是物理的,也可以是混合的。它可以是一臺(tái)電腦,一個(gè)手機(jī),一個(gè)終端,也可以是一個(gè)局域網(wǎng)、城域網(wǎng)等等。
計(jì)算機(jī)的網(wǎng)絡(luò)技術(shù)在計(jì)算機(jī)技術(shù)中算是比較早期的一種技術(shù)了,在60年代的中期就已經(jīng)開(kāi)始在實(shí)際應(yīng)用了。但真正的普及是美國(guó)的國(guó)防用網(wǎng)絡(luò)。早期學(xué)習(xí)電腦的或者看過(guò)早期電影的,都聽(tīng)說(shuō)過(guò)某某黑客特別厲害,進(jìn)入了五角大樓的網(wǎng)絡(luò),盜取了不少軍事資料。可以這樣講,計(jì)算機(jī)的網(wǎng)絡(luò)技術(shù)也是從美國(guó)開(kāi)始興起的,然后在全世界開(kāi)始普及。這也解釋了為什么現(xiàn)在最牛的互聯(lián)網(wǎng)公司基本都在美國(guó)的一個(gè)重要原因。比如耳熟能詳?shù)墓雀?、微軟、臉?shū)以及推特等等。
隨著PC的出現(xiàn)和發(fā)展,局域網(wǎng)(LAN)出現(xiàn)。美國(guó)Xerox公司首先推出了Ethernet網(wǎng),慢慢其成為了一種標(biāo)準(zhǔn),大家都稱現(xiàn)在的局域網(wǎng)絡(luò)為以太網(wǎng)。有了局域就會(huì)有廣域網(wǎng)WAN。不過(guò)需要說(shuō)明的是,所謂局域與廣域是一個(gè)相對(duì)概念,請(qǐng)大家一定要根據(jù)實(shí)際場(chǎng)景來(lái)確定。
網(wǎng)絡(luò)技術(shù)其實(shí)就是處理PC間連接通信的技術(shù)。從物理上講,如何識(shí)別網(wǎng)絡(luò)中的PC,如何與其它PC交換數(shù)據(jù)等等。首先需要用物理導(dǎo)線將各個(gè)PC連接起來(lái),一開(kāi)始是電纜,后來(lái)光纜,再后來(lái)又有無(wú)線技術(shù)。然后還要有路由器和交換機(jī)把數(shù)據(jù)將有的傳送到指定的PC。而為了實(shí)現(xiàn)上述的功能,就需要一系列的通信標(biāo)準(zhǔn)和通信協(xié)議。這就引出了網(wǎng)絡(luò)協(xié)議的五層模型(七層就是個(gè)學(xué)術(shù)的東西,沒(méi)啥實(shí)際應(yīng)用的意義)。而這個(gè)模型中,則包含是最常見(jiàn)的網(wǎng)絡(luò)編程中的TCP/IP、UDP、HTTP等最常見(jiàn)的網(wǎng)絡(luò)編程技術(shù)?;蛘哒f(shuō)的不準(zhǔn)確一些,對(duì)大多數(shù)的網(wǎng)絡(luò)編程人員來(lái)說(shuō),就是TCP/IP和UDP編程。在移動(dòng)互聯(lián)網(wǎng)中,HTTP則更為普及的被使用。至于其它的技術(shù),基本都是相當(dāng)專業(yè)的人員或者特定領(lǐng)域的開(kāi)發(fā)者才會(huì)使用。

二、基本知識(shí)

這里不談?shì)^老的技術(shù)和很新的技術(shù),比如QUIC和HTTP3等。在網(wǎng)絡(luò)編程中,可以分成兩大類應(yīng)用,即B/S開(kāi)發(fā)和C/S開(kāi)發(fā)(P2P以后專門講),這里只談C/S開(kāi)發(fā)。即本系列主要針對(duì)C/S開(kāi)發(fā)中的TCP/IP編程以及UDP的編程。只要掌握了它們的編程,其它的編程基本都差不多。在TCP/IP和UDP編程中,需要掌握一些基本的知識(shí):
1、服務(wù)器
這個(gè)概念是一個(gè)非常容易混淆的概念,一定要區(qū)別在不同的語(yǔ)境和環(huán)境下的定義。在網(wǎng)絡(luò)編程的語(yǔ)境下,一般是指承載網(wǎng)絡(luò)服務(wù)軟件的服務(wù)器電腦(硬件)。它可以分成網(wǎng)絡(luò)內(nèi)部自用,比如路由器、交換機(jī)等也可以只提供某種網(wǎng)絡(luò)服務(wù)的電腦如打印服務(wù)器、郵箱服務(wù)器等。
2、服務(wù)端
服務(wù)端或服務(wù)端軟件,也可以叫網(wǎng)絡(luò)服務(wù),在特定到C/S編程中,就是指提供連接服務(wù)的程序。一般來(lái)說(shuō),服務(wù)端是被接收連接的。
3、客戶端
客戶端在C/S編程中指發(fā)起連接的一端。
4、協(xié)議棧
協(xié)議棧(Protocol stack),又稱協(xié)議堆疊,是計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議套件的一個(gè)具體的軟件實(shí)現(xiàn)。
5、伯克利套接字
伯克利套接字(Berkeley sockets),也稱為BSD Socket。其是一種使用C語(yǔ)言實(shí)現(xiàn)的網(wǎng)絡(luò)編程抽象接口。現(xiàn)在幾乎成為了互聯(lián)網(wǎng)通信的標(biāo)準(zhǔn)接口。
6、五元組和三元組:
五元組包括:源IP地址,源端口,目的IP地址,目的端口和傳輸層協(xié)議。這等同于現(xiàn)實(shí)世界中的人和人之間的通信地址。
7、協(xié)議族
socket函數(shù)中的第一個(gè)參數(shù)中意義,也叫協(xié)議域。通常有AF_INET、AF_INET6、AF_LOCAL(或稱AF_UNIX,Unix域socket)、AF_ROUTE等。協(xié)議族確定socket的地址類型,即雙方必須使用相同的通信類型才可以進(jìn)行以通信。如常見(jiàn)的AF_INET需要用32位(類似192.168.0.1)ipv4地址與16位端口號(hào)(最大65535)的組合、AF_UNIX需要用一個(gè)絕對(duì)路徑名作為地址。

當(dāng)然,還有很多的基礎(chǔ)性的知識(shí)和名詞術(shù)語(yǔ)。網(wǎng)絡(luò)技術(shù)是一個(gè)發(fā)展了很多年的技術(shù),它既成熟又年輕。舉一個(gè)簡(jiǎn)單的例子,當(dāng)有一個(gè)人說(shuō)他是搞服務(wù)端編程的,如何確定他的技術(shù)棧?其實(shí)這個(gè)定義非常難確定,網(wǎng)上一些大牛的說(shuō)明其實(shí)也不能夠完全覆蓋相關(guān)的內(nèi)容,即他們的定義也是不嚴(yán)謹(jǐn)?shù)摹5珒H從經(jīng)驗(yàn)和學(xué)識(shí)來(lái)推斷,特定到C/c++中,它一般是指TCP/IP編程的相關(guān)技術(shù)棧(當(dāng)然,它也不嚴(yán)謹(jǐn))。
再舉一個(gè)實(shí)際的例子,大家去品一下上面這段話,至于能理解多少看自身了。在某電力部門,要求把服務(wù)端程序部署在終端上,把客戶端程序部署在服務(wù)器上。客戶端要24*7運(yùn)行,服務(wù)端可以允許斷線。
注意:再次說(shuō)明,本系列不是對(duì)網(wǎng)絡(luò)編程技術(shù)基礎(chǔ)知識(shí)的詳細(xì)分析說(shuō)明,是對(duì)c++在網(wǎng)絡(luò)編程上的應(yīng)用分析說(shuō)明,所以只對(duì)相關(guān)的一些知識(shí)點(diǎn)進(jìn)行指出和簡(jiǎn)要的說(shuō)明。更多的相關(guān)知識(shí),請(qǐng)自行查閱下面提供的書(shū)籍和資料!

三、簡(jiǎn)單示例

雖然網(wǎng)絡(luò)編程的例子多之又多,但這里還是要給一個(gè)簡(jiǎn)單的例子:
服務(wù)端:

#include <iostream>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>int main() {int server_fd, new_socket;struct sockaddr_in address;int opt = 1;int addrlen = sizeof(address);char buffer[1024] = {0};const char* msg = "hello moto!";//創(chuàng)建socketif ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {perror("socket failed");exit(EXIT_FAILURE);}//設(shè)置選項(xiàng)if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) {perror("setsockopt");exit(EXIT_FAILURE);}//地址設(shè)置address.sin_family = AF_INET;address.sin_addr.s_addr = INADDR_ANY;address.sin_port = htons( 8888 );//綁定端口if (bind(server_fd, (struct sockaddr *)&address, sizeof(address))<0) {perror("bind err");exit(EXIT_FAILURE);}//監(jiān)聽(tīng)if (listen(server_fd, 5) < 0) {perror("listen");exit(EXIT_FAILURE);}//接受連接if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen))<0) {perror("accept err!");exit(EXIT_FAILURE);}send(new_socket , msg , strlen(msg) , 0 );printf("send msg ...\n");memset(buffer, '\0' , 1024);int ret = recv( new_socket , buffer, 1024,0);printf("%s\n",buffer );return 0;
}

客戶端:

#include <iostream>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>int main() {int sock = 0, ret;struct sockaddr_in serv_addr;const char* msg = "hello !";char buffer[1024] = {0};//創(chuàng)建socketif ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {printf("\n Socket  error \n");return -1;}serv_addr.sin_family = AF_INET;serv_addr.sin_port = htons(8888);//轉(zhuǎn)換地址if(inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr)<=0) {printf("\n Invalid address  \n");return -1;}//連接serverif (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {printf("\n Connection err \n");return -1;}send(sock , msg , strlen(msg) , 0 );printf("send msg !\n");ret = recv( sock , buffer, 1024,0);printf("%s\n",buffer );return 0;
}

寫這種測(cè)試的小例程有一個(gè)需要注意的地方,客戶端發(fā)送完成后,不要立即退出,否則可能服務(wù)端收不到相關(guān)的消息。

四、推薦的資料和書(shū)籍

一如在VC編程上侯捷教師是一個(gè)令開(kāi)發(fā)者仰望的山峰,在網(wǎng)絡(luò)編程也有很多更高的高峰。比如常見(jiàn)的推薦的《TCP/IP詳解》三卷和《Unix網(wǎng)絡(luò)編程》兩卷的作者W. Richard Stevens(當(dāng)然他寫的APUE也相當(dāng)?shù)某雒?#xff09;。不過(guò)這些書(shū)的缺點(diǎn)也有,就是太老了。導(dǎo)致一些技術(shù)已經(jīng)落后而一些新技術(shù)沒(méi)有體現(xiàn)出來(lái)。其它國(guó)外的還有不少就不一一列舉。國(guó)內(nèi)也有幾個(gè)比較有名氣的網(wǎng)絡(luò)開(kāi)發(fā)者,限定到本文這個(gè)場(chǎng)景非常推薦MUDUO庫(kù)的作者陳碩。當(dāng)然就像江湖中一樣,肯定還有很多高手隱身不出。
學(xué)習(xí)網(wǎng)絡(luò)編程的書(shū)籍非常多,比如CSDN的孟巖大佬的“四書(shū)五經(jīng)”之說(shuō)就是為多數(shù)大牛推薦的。這里簡(jiǎn)單羅列一下:
1、TCP/IP詳解(三卷)(TCP/IP Illustrated)
2、Unix網(wǎng)絡(luò)編程(兩卷)(UNIX Network Programming)
3、TCP/IP高級(jí)編程(Effective TCP/IP Programming)
4、C++網(wǎng)絡(luò)編程(兩卷)(C++ Network Programming)
雖然這些書(shū)籍非常不錯(cuò),但對(duì)于初學(xué)者未必就合適,也推薦一些比較容易借鑒學(xué)習(xí)的書(shū)籍:
1、《Linux多線程服務(wù)端編程》 陳碩
2、《Linux高性能服務(wù)端編程》 游雙
3、《Windows網(wǎng)絡(luò)與通信程序設(shè)計(jì)》 王艷平
并不是說(shuō)其它的書(shū)籍不值得推薦,是覺(jué)得這幾本書(shū)更容易被學(xué)習(xí)和接受。至于網(wǎng)絡(luò)上的資料就更多了,如陳碩、原網(wǎng)易的云風(fēng)等人的BLOG都非常值得一看。個(gè)人的建議是,要根據(jù)自己的實(shí)際情況來(lái)決定學(xué)習(xí)成長(zhǎng)的路線,不要人云亦云。大牛們給的建議可能對(duì)大多數(shù)人都是非常好的,但具體到某些個(gè)體,可能會(huì)有所不妥。大家要知道如何不斷的根據(jù)大牛們的建議因地制宜的學(xué)習(xí)。
另外在網(wǎng)上還存在著大量的網(wǎng)絡(luò)框架如C++網(wǎng)絡(luò)編程中的ACE,還有l(wèi)ibevent,libuv,libev,libeio,libhv,asio,poco等等。畢竟網(wǎng)絡(luò)應(yīng)用是一個(gè)非常高頻的應(yīng)用,也是很多開(kāi)發(fā)者想登頂?shù)南M?br /> 其實(shí)還有很多應(yīng)用程序中也有非常好的例子,比如REDIS,有時(shí)間推薦看看內(nèi)部如何跨平臺(tái)實(shí)現(xiàn)了網(wǎng)絡(luò)服務(wù)端的編程。

五、總結(jié)

網(wǎng)絡(luò)編程是一個(gè)復(fù)雜的應(yīng)用,一般來(lái)說(shuō),很難在一兩年內(nèi)達(dá)到熟練掌握的程度,更不要談精通了。通常,把基礎(chǔ)的網(wǎng)絡(luò)知識(shí)學(xué)習(xí)完成,頭腦中有一個(gè)相對(duì)完整的網(wǎng)絡(luò)編程概念,然后在實(shí)際應(yīng)用中不斷的加以印證,才能更快更好的掌握網(wǎng)絡(luò)編程。
網(wǎng)絡(luò)編程其實(shí)是一個(gè)簡(jiǎn)單應(yīng)用易,復(fù)雜應(yīng)用極難的技術(shù)。它不僅是涉及到網(wǎng)絡(luò)相關(guān)的技術(shù),還包括內(nèi)存管理、多線(進(jìn))程以及異步編程等很多技術(shù),甚至是否需要跨平臺(tái)跨系統(tǒng)等。對(duì)大多數(shù)開(kāi)發(fā)者言,網(wǎng)絡(luò)編程的應(yīng)用一般都是比較簡(jiǎn)單的應(yīng)用,并發(fā)通常也就是十個(gè)量級(jí)左右,而且經(jīng)常類似于交互式通信那種情況。對(duì)多線程和異步的要求不高甚至沒(méi)有,對(duì)內(nèi)存管理和效率的要求也不嚴(yán)格。
但當(dāng)真正到了C10K以上的編程時(shí),復(fù)雜程度立刻便上來(lái),導(dǎo)致很多開(kāi)發(fā)者沒(méi)有一個(gè)過(guò)渡便直面這些復(fù)雜的應(yīng)用。也就是說(shuō),在網(wǎng)絡(luò)編程大多數(shù)的編程場(chǎng)景是要么簡(jiǎn)單,要么復(fù)雜,中等的開(kāi)發(fā)場(chǎng)景非常少。而且從設(shè)計(jì)上考慮,一旦到了中等的場(chǎng)景,優(yōu)秀的架構(gòu)師通常會(huì)考慮擴(kuò)展的情況下設(shè)計(jì)成更為復(fù)雜的框架結(jié)構(gòu)。
復(fù)雜的網(wǎng)絡(luò)編程,導(dǎo)致很多的框架的出現(xiàn),而這些框架的出現(xiàn)更是切斷了大多數(shù)開(kāi)發(fā)者對(duì)背后復(fù)雜結(jié)構(gòu)的理解,導(dǎo)致一個(gè)從初級(jí)網(wǎng)絡(luò)編程到高級(jí)網(wǎng)絡(luò)編程的連續(xù)而完整的流程,即要么只會(huì)簡(jiǎn)單的編程,要么只會(huì)在框架下完成各種場(chǎng)景的應(yīng)用。
更何況,網(wǎng)絡(luò)編程的實(shí)際要求仍然在不斷的增長(zhǎng),這也是前面分析DPDK和XDP等的一些重要原因。換句話說(shuō),網(wǎng)絡(luò)編程的技術(shù)仍然在不斷的進(jìn)步。所以,不斷的學(xué)習(xí)才能保證在網(wǎng)絡(luò)編程的方向上有更大的發(fā)展。

http://www.risenshineclean.com/news/30450.html

相關(guān)文章:

  • 網(wǎng)站ftp查詢國(guó)際網(wǎng)絡(luò)銷售平臺(tái)有哪些
  • 西安做網(wǎng)站建設(shè)的qq推廣工具
  • 醫(yī)藥網(wǎng)站建設(shè)蟻坊軟件輿情監(jiān)測(cè)系統(tǒng)
  • 山西做網(wǎng)站運(yùn)營(yíng)的公司網(wǎng)店運(yùn)營(yíng)培訓(xùn)哪里好
  • 視差效果網(wǎng)站網(wǎng)絡(luò)推廣是什么職業(yè)
  • 公司請(qǐng)做網(wǎng)站百度 競(jìng)價(jià)排名
  • 怎么找人做動(dòng)漫視頻網(wǎng)站seo關(guān)鍵詞排名優(yōu)化的方法
  • 找人做網(wǎng)站去哪里找黃岡網(wǎng)站推廣廠家
  • 商城網(wǎng)站建設(shè)運(yùn)營(yíng)合同天津優(yōu)化公司哪家好
  • 門戶網(wǎng)站建設(shè)ppt方案seo公司費(fèi)用
  • 工作室怎么網(wǎng)站備案外貿(mào)網(wǎng)站推廣平臺(tái)有哪些
  • 鄭州高新區(qū)做網(wǎng)站開(kāi)發(fā)的公司網(wǎng)站seo推廣排名
  • 電子商務(wù)網(wǎng)站建設(shè)總結(jié)免費(fèi)網(wǎng)站在線觀看人數(shù)在哪直播
  • 網(wǎng)站地圖對(duì)seo的影響品牌營(yíng)銷策劃與管理
  • 做pc端網(wǎng)站平臺(tái)今日頭條熱點(diǎn)新聞
  • 建筑網(wǎng)片的用途seo優(yōu)化工具
  • 沌口網(wǎng)站建設(shè)淘寶seo搜索排名優(yōu)化
  • wordpress主頁(yè)底端添加圖常州網(wǎng)站seo
  • 公司網(wǎng)站可以自己做河南關(guān)鍵詞排名顧問(wèn)
  • 網(wǎng)站建設(shè)文案有趣網(wǎng)站關(guān)鍵詞快速排名服務(wù)
  • 網(wǎng)站備案最快多久seo學(xué)院培訓(xùn)班
  • 上傳網(wǎng)站怎么安裝寧德市蕉城區(qū)疫情
  • wordpress隱藏回復(fù)插件seo做關(guān)鍵詞怎么收費(fèi)的
  • 網(wǎng)站發(fā)外鏈中山seo排名
  • 四川移動(dòng)網(wǎng)站建設(shè)怎樣做推廣是免費(fèi)的
  • 網(wǎng)頁(yè)界面設(shè)計(jì)系統(tǒng)seo描述是什么
  • 網(wǎng)頁(yè)設(shè)計(jì)軟件adobe鄭州seo技術(shù)顧問(wèn)
  • ui設(shè)計(jì)培訓(xùn)需要多少費(fèi)用百度關(guān)鍵詞搜索優(yōu)化
  • 織夢(mèng)網(wǎng)站動(dòng)態(tài)網(wǎng)站建設(shè)推廣優(yōu)化
  • 老鷹畫室網(wǎng)站哪家做的b站視頻怎么快速推廣