新聞中心
遠(yuǎn)程過程調(diào)用(RPC, Remote Procedure Call)是一種計(jì)算機(jī)通信協(xié)議,它允許一個(gè)程序在一臺(tái)計(jì)算機(jī)上調(diào)用另一個(gè)計(jì)算機(jī)上的遠(yuǎn)程程序,而不需要考慮底層網(wǎng)絡(luò)協(xié)議的細(xì)節(jié)。在Linux操作系統(tǒng)中,RPC是一個(gè)支持類Unix系統(tǒng)間通訊的機(jī)制。RPC在Linux中通常被用來實(shí)現(xiàn)分布式應(yīng)用程序。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)站空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、潁東網(wǎng)站維護(hù)、網(wǎng)站推廣。
RPC通信模型
RPC通信模型分為客戶端和服務(wù)端,客戶端程序?qū)⒄{(diào)用請(qǐng)求發(fā)送到服務(wù)端,服務(wù)端接收請(qǐng)求并執(zhí)行需要執(zhí)行的遠(yuǎn)程過程,并將結(jié)果返回給客戶端。RPC所采用的協(xié)議可以是TCP/IP、UDP或B等協(xié)議。調(diào)用請(qǐng)求可以是同步或異步,同步調(diào)用將等待服務(wù)端執(zhí)行完畢并返回結(jié)果,異步調(diào)用則將不會(huì)等待,而是直接返回。
RPC原理
遠(yuǎn)程過程調(diào)用的實(shí)現(xiàn)很復(fù)雜,RPC的基本實(shí)現(xiàn)原理是將本地使用的遠(yuǎn)程過程作為本地過程調(diào)用,由RPC系統(tǒng)來負(fù)責(zé)遠(yuǎn)程過程的調(diào)用和參數(shù)傳遞。RPC系統(tǒng)接收到程序發(fā)出的調(diào)用請(qǐng)求后,根據(jù)程序的請(qǐng)求發(fā)送給遠(yuǎn)端機(jī)器,遠(yuǎn)端機(jī)器將程序執(zhí)行的結(jié)果傳遞給RPC系統(tǒng),由RPC系統(tǒng)將結(jié)果返回給程序。因此,程序只需要像調(diào)用本地過程一樣調(diào)用遠(yuǎn)程過程而無需關(guān)心RPC系統(tǒng)的具體實(shí)現(xiàn)。
RPC的好處
1. 分布式開發(fā):RPC系統(tǒng)可以將一個(gè)應(yīng)用程序分成若干個(gè)小的邏輯單元,每個(gè)邏輯單元可以在不同的計(jì)算機(jī)上獨(dú)立開發(fā),并通過RPC協(xié)議連接起來。這種方式可以大大提高大型應(yīng)用程序的開發(fā)效率和性能。
2. 多語言支持:RPC協(xié)議可以支持多種編程語言,使得分布式的應(yīng)用程序可以采用不同的編程語言實(shí)現(xiàn)。
3. 解耦:通過RPC可以將應(yīng)用程序的各模塊分成獨(dú)立的單元,使得應(yīng)用程序可以輕松擴(kuò)展和優(yōu)化,實(shí)現(xiàn)了松耦合的應(yīng)用程序架構(gòu)。
Linux RPC開發(fā)
在Linux系統(tǒng)下,RPC框架在可移植性有一定保障的同時(shí),能夠較好地滿足在Linux系統(tǒng)環(huán)境下的開發(fā)需要。下面介紹Linux RPC開發(fā)中的一些相關(guān)知識(shí)點(diǎn)。
代碼生成器
可以使用RPC生成工具自動(dòng)生成客戶端和服務(wù)端的代碼,使得效率大幅提高,減少錯(cuò)誤的產(chǎn)生。工具可以根據(jù)IDL (interface description language) 接口描述語言自動(dòng)生成客戶端和服務(wù)端的代碼,IDL是一種規(guī)范的接口描述語言,其文件定義描述了一個(gè)處于分布式環(huán)境中通過RPC互相調(diào)用的一組接口。
總線連接
總線連接提供了一種建立RPC通信的機(jī)制,使得在網(wǎng)絡(luò)環(huán)境中數(shù)據(jù)傳輸完整可靠、高效。Linux系統(tǒng)中支持的RPC總線連接包括The Sun Ttie-RPC和NFS(RPC protocol used for network file sharing),The Sun Ttie-RPC目前已成為L(zhǎng)inux下開發(fā)RPC必備的一種通信方式。
網(wǎng)絡(luò)綁定
網(wǎng)絡(luò)綁定用于將RPC守護(hù)進(jìn)程與指定的端口綁定,使得守護(hù)進(jìn)程可以監(jiān)聽指定的網(wǎng)絡(luò)地址和端口,從而接受請(qǐng)求并執(zhí)行相應(yīng)的操作,返回結(jié)果。這個(gè)過程是RPC服務(wù)啟動(dòng)的基礎(chǔ)。
線程安全
在多線程環(huán)境下,RPC服務(wù)器需要考慮線程安全性。避免多個(gè)線程同時(shí)訪問同一資源導(dǎo)致數(shù)據(jù)混亂。Linux RPC的實(shí)現(xiàn)中,常常會(huì)使用POSIX線程庫(kù)提供的互斥鎖、讀寫鎖等機(jī)制來控制線程訪問。
在大數(shù)據(jù)時(shí)代,分布式應(yīng)用越來越受到重視。RPC的實(shí)現(xiàn)可以將應(yīng)用程序分成若干個(gè)小邏輯單元,防止代碼耦合和數(shù)據(jù)混亂,提高代碼復(fù)用和開發(fā)效率。而在Linux系統(tǒng)下,可利用Linux RPC作為分布式應(yīng)用程序的通信方式,處理數(shù)據(jù)量巨大的情況,實(shí)現(xiàn)更優(yōu)性能。Linux RPC的開發(fā)需要掌握基本的知識(shí)點(diǎn)如代碼生成器、網(wǎng)絡(luò)綁定、總線連接和線程安全等,同時(shí)掌握RPC的好處,并靈活使用,就能為分布式應(yīng)用程序的開發(fā)提供強(qiáng)有力的支撐。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
怎么配置linux的cron計(jì)劃
在備型槐終端:
輸入crontab
*
*
/租則in/shutdown
-h
now
“FOR
MAINTANCE”
按ctrl+d保存退出
接著運(yùn)行:
service
portmap
restart
重新啟動(dòng)RPC服務(wù),默認(rèn)是啟動(dòng)的。
service
crond
restart
重新啟動(dòng)crond服務(wù),必須的!讓你上仿友面的配置生效!
你在控制臺(tái)也就是終端上執(zhí)行橘畝鍵
crontab
-e
然后會(huì)出來一個(gè)編輯畫面你就輸入
*
*
/in/shutdown
-h
now
“FOR
MAINTANCE”
然后wq保圓巧持耐模退出
service
portmap
start
service
crond
start
但這兩個(gè)不知道有什么用,和crontab
沒關(guān)系的
輸入crontab
*
*
/in/shutdown
-h
now
“FOR
MAINTANCE”
service
portmap
start
service
crond
start
謝謝如果您覺得和鬧拿滿意,請(qǐng)您采納!給予加分!如果回答感覺不詳喚搭細(xì)彎雀請(qǐng)咨詢!
求前輩指教。linux的套接字編程,這個(gè)程序運(yùn)行,我照著源碼敲,出現(xiàn)一堆錯(cuò)誤。用的是vim和gcc
再啟動(dòng)時(shí)會(huì)出現(xiàn):
Bind(): Address already in use
的錯(cuò)誤提示,并導(dǎo)致程序直接退出;
用
$netstat -an |grep 8080
或
$ps aux |grep 8080
都還能看到剛才用Ctrl+C“強(qiáng)制結(jié)束”了的進(jìn)程,端口還是使用中,
只能用kill結(jié)束進(jìn)程,才能收回端口,很是麻煩。
在代碼中添加:
int optval;
optval = 1;
ret = setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval) );
可以解決這問題。
在網(wǎng)上查到的更好的解釋如下:
在 4.2 BSD UNIX? 操作系統(tǒng)中首次引入,Sockets API 現(xiàn)在是任何操作系統(tǒng)的標(biāo)準(zhǔn)特性。
事實(shí)上,很難找到一種不支持 Sockets API 的現(xiàn)代語言。
該 API 相當(dāng)簡(jiǎn)單,但新的開發(fā)人員仍然會(huì)遇到一些常見的隱患。
本文識(shí)別那些隱患并向您顯示如何避開它們。
隱患 1.忽略返回狀態(tài)
之一個(gè)隱患很明顯,但它是開發(fā)新手最容易犯的一個(gè)錯(cuò)誤。
如果您忽略函數(shù)的返回狀態(tài),當(dāng)它們失敗或部分成功的時(shí)候,您也許會(huì)迷失。
反過來,這可能傳播錯(cuò)誤,使定位問題的源頭變得困難。
捕獲并檢查每一個(gè)返回狀態(tài),而不是忽略它們。
考慮清單 1 顯示的例子,一個(gè)套接字 send 函數(shù)。
清單 1. 忽略 API 函數(shù)返回狀態(tài)
int status, sock, mode;
/* Create a new stream (TCP) socket */
sock = socket( AF_INET, SOCK_STREAM, 0 );
…
status = send( sock, buffer, buflen, MSG_DONTWAIT );
if (status == -1)
{
/* send failed */
printf( “send failed: %s\n”, strerror(errno) );
}
else
{
/* send succeeded — or did it? */
}
清單 1 探究一個(gè)函數(shù)片斷,它完成套接字 send 操作(通過套接字發(fā)送數(shù)據(jù))。
函數(shù)的錯(cuò)誤狀態(tài)被捕獲并測(cè)試,但這個(gè)例子忽略了send 在無阻塞模式(由 MSG_DONTWAIT 標(biāo)志啟用)下的一個(gè)特性。
send API 函數(shù)有三類可虧冊(cè)槐能的返回值:
如果數(shù)據(jù)成功地排到傳輸隊(duì)列,則返回 0。
如果排隊(duì)失敗,則返回 -1(通過使用 errno 變量可以了解失敗的原因)。
如果不是所有的字符都能夠在函數(shù)調(diào)用時(shí)排隊(duì),則最終的返回值是發(fā)送的字符數(shù)。
由于 send 的 MSG_DONTWAIT 變量的無阻塞性質(zhì),
函數(shù)調(diào)用在發(fā)送完所有的數(shù)據(jù)、一些數(shù)據(jù)或沒有發(fā)送任何數(shù)據(jù)后返回。
在這里忽略返回狀態(tài)將導(dǎo)致不完全的發(fā)送和隨后的數(shù)據(jù)丟失。
隱患 2.對(duì)姿源等套接字閉包
UNIX 有趣的一面是您幾乎可以把任何東西看成是一個(gè)文銷友件。
文件本身、目錄、管道、設(shè)備和套接字都被當(dāng)作文件。
這是新穎的抽象,意味著一整套的 API 可以用在廣泛的設(shè)備類型上。
考慮 read API 函數(shù),它從文件讀取一定數(shù)量的字節(jié)。
read 函數(shù)返回:
讀取的字節(jié)數(shù)(更高為您指定的更大值);
或者 -1,表示錯(cuò)誤;
或者 0,如果已經(jīng)到達(dá)文件末尾。
如果在一個(gè)套接字上完成一個(gè) read 操作并得到一個(gè)為 0 的返回值,這表明遠(yuǎn)程套接字端的對(duì)等層調(diào)用了 close API 方法。
該指示與文件讀取相同 —— 沒有多余的數(shù)據(jù)可以通過描述符讀?。▍⒁?清單 2)。
清單 2.適當(dāng)處理 read API 函數(shù)的返回值
int sock, status;
sock = socket( AF_INET, SOCK_STREAM, 0 );
…
status = read( sock, buffer, buflen );
if (status > 0)
{
/* Data read from the socket */
}
else if (status == -1)
{
/* Error, check errno, take action… */
}
else if (status == 0)
{
/* Peer closed the socket, finish the close */
close( sock );
/* Further processing… */
}
同樣,可以用 write API 函數(shù)來探測(cè)對(duì)等套接字的閉包。
在這種情況下,接收 SIGPIPE 信號(hào),或如果該信號(hào)阻塞,write 函數(shù)將返回 -1 并設(shè)置 errno 為 EPIPE。
隱患 3.地址使用錯(cuò)誤(EADDRINUSE)
您可以使用 bind API 函數(shù)來綁定一個(gè)地址(一個(gè)接口和一個(gè)端口)到一個(gè)套接字端點(diǎn)。
可以在服務(wù)器設(shè)置中使用這個(gè)函數(shù),以便限制可能有連接到來的接口。
也可以在客戶端設(shè)置中使用這個(gè)函數(shù),以便限制應(yīng)當(dāng)供出去的連接所使用的接口。
bind 最常見的用法是關(guān)聯(lián)端口號(hào)和服務(wù)器,并使用通配符地址(INADDR_ANY),它允許任何接口為到來的連接所使用。
bind 普遍遭遇的問題是試圖綁定一個(gè)已經(jīng)在使用的端口。
該陷阱是也許沒有活動(dòng)的套接字存在,但仍然禁止綁定端口(bind 返回EADDRINUSE),
它由 TCP 套接字狀態(tài) TIME_WAIT 引起。
該狀態(tài)在套接字關(guān)閉后約保留 2 到 4 分鐘。
在 TIME_WAIT 狀態(tài)退出之后,套接字被刪除,該地址才能被重新綁定而不出問題。
等待 TIME_WAIT 結(jié)束可能是令人惱火的一件事,
特別是如果您正在開發(fā)一個(gè)套接字服務(wù)器,就需要停止服務(wù)器來做一些改動(dòng),然后重啟。
幸運(yùn)的是,有方法可以避開 TIME_WAIT 狀態(tài)。可以給套接字應(yīng)用 SO_REUSEADDR 套接字選項(xiàng),以便端口可以馬上重用。
考慮清單 3 的例子。
在綁定地址之前,我以 SO_REUSEADDR 選項(xiàng)調(diào)用 setsockopt。
為了允許地址重用,我設(shè)置整型參數(shù)(on)為 1 (不然,可以設(shè)為 0 來禁止地址重用)。
清單 3.使用 SO_REUSEADDR 套接字選項(xiàng)避免地址使用錯(cuò)誤
int sock, ret, on; struct sockaddr_in servaddr; /* Create a new stream (TCP) socket */ sock = socket( AF_INET, SOCK_STREAM, 0 ):
/* Enable address reuse */
on = 1;
ret = setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) );
/* Allow connections to port 8080 from any available interface */
memset( &servaddr, 0, sizeof(servaddr) );
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl( INADDR_ANY );
servaddr.sin_port = htons();
/* Bind to the address (interface/port) */
ret = bind( sock, (struct sockaddr *)&servaddr, sizeof(servaddr) );
在應(yīng)用了 SO_REUSEADDR 選項(xiàng)之后,bind API 函數(shù)將允許地址的立即重用。
隱患 4.發(fā)送結(jié)構(gòu)化數(shù)據(jù)
套接字是發(fā)送無結(jié)構(gòu)二進(jìn)制字節(jié)流或 ASCII 數(shù)據(jù)流(比如 HTTP 上的 HTTP 頁面,或 TP 上的電子郵件)的完美工具。但是如果試圖在一個(gè)套接字上發(fā)送二進(jìn)制數(shù)據(jù),事情將會(huì)變得更加復(fù)雜。
比如說,您想要發(fā)送一個(gè)整數(shù):您可以肯定,接收者將使用同樣的方式來解釋該整數(shù)嗎?
運(yùn)行在同一架構(gòu)上的應(yīng)用程序可以依賴它們共同的平臺(tái)來對(duì)該類型的數(shù)據(jù)做出相同的解釋。
但是,如果一個(gè)運(yùn)行在高位優(yōu)先的 IBM PowerPC 上的客戶端發(fā)送一個(gè) 32 位的整數(shù)到一個(gè)低位優(yōu)先的 Intel x86,
那將會(huì)發(fā)生什么呢?
字節(jié)排列將引起不正確的解釋。
字節(jié)交換還是不呢?
Endianness 是指內(nèi)存中字節(jié)的排列順序。高位優(yōu)先(big endian) 按更高有效字節(jié)在前排列,然而 低位優(yōu)先(little endian) 按照更低有效字節(jié)在前排序。
高位優(yōu)先架構(gòu)(比如 PowerPC?)比低位優(yōu)先架構(gòu)(比如 Intel? Pentium? 系列,其網(wǎng)絡(luò)字節(jié)順序是高位優(yōu)先)有優(yōu)勢(shì)。這意味著,對(duì)高位優(yōu)先的機(jī)器來說,在 TCP/IP 內(nèi)控制數(shù)據(jù)是自然有序的。低位優(yōu)先架構(gòu)要求字節(jié)交換 —— 對(duì)網(wǎng)絡(luò)應(yīng)用程序來說,這是一個(gè)輕微的性能弱點(diǎn)。
通過套接字發(fā)送一個(gè) C 結(jié)構(gòu)會(huì)怎么樣呢?這里,也會(huì)遇到麻煩,因?yàn)椴皇撬械木幾g器都以相同的方式排列一個(gè)結(jié)構(gòu)的元素。結(jié)構(gòu)也可能被壓縮以便使浪費(fèi)的空間最少,這進(jìn)一步使結(jié)構(gòu)中的元素錯(cuò)位。
幸好,有解決這個(gè)問題的方案,能夠保證兩端數(shù)據(jù)的一致解釋。過去,遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)套裝工具提供所謂的外部數(shù)據(jù)表示(External Data Representation,XDR)。XDR 為數(shù)據(jù)定義一個(gè)標(biāo)準(zhǔn)的表示來支持異構(gòu)網(wǎng)絡(luò)應(yīng)用程序通信的開發(fā)。
現(xiàn)在,有兩個(gè)新的協(xié)議提供相似的功能??蓴U(kuò)展標(biāo)記語言/遠(yuǎn)程過程調(diào)用(XML/RPC)以 XML 格式安排 HTTP 上的過程調(diào)用。數(shù)據(jù)和元數(shù)據(jù)用 XML 進(jìn)行編碼并作為字符串傳輸,并通過主機(jī)架構(gòu)把值和它們的物理表示分開。SOAP 跟隨 XML-RPC,以更好的特性和功能擴(kuò)展了它的思想。參見 參考資料 小節(jié),獲取更多關(guān)于每個(gè)協(xié)議的信息。
回頁首
隱患 5.TCP 中的幀同步假定
TCP 不提供幀同步,這使得它對(duì)于面向字節(jié)流的協(xié)議是完美的。
這是 TCP 與 UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)的一個(gè)重要區(qū)別。
UDP 是面向消息的協(xié)議,它保留發(fā)送者和接收者之間的消息邊界。
TCP 是一個(gè)面向流的協(xié)議,它假定正在通信的數(shù)據(jù)是無結(jié)構(gòu)的,
如圖 1 所示。
圖 1.UDP 的幀同步能力和缺乏幀同步的 TCP
圖 1 的上部說明一個(gè) UDP 客戶端和服務(wù)器。
左邊的對(duì)等層完成兩個(gè)套接字的寫操作,每個(gè) 100 字節(jié)。
協(xié)議棧的 UDP 層追蹤寫的數(shù)量,并確保當(dāng)右邊的接收者通過套接字獲取數(shù)據(jù)時(shí),它以同樣數(shù)量的字節(jié)到達(dá)。
換句話說,為讀者保留了寫者提供的消息邊界。
現(xiàn)在,看圖 1 的底部.它為 TCP 層演示了相同粒度的寫操作。
兩個(gè)獨(dú)立的寫操作(每個(gè) 100 字節(jié))寫入流套接字。
但在本例中,流套接字的讀者得到的是 200 字節(jié)。
協(xié)議棧的 TCP 層聚合了兩次寫操作。
這種聚合可以發(fā)生在 TCP/IP 協(xié)議棧的發(fā)送者或接收者中任何一方。
重要的是,要注意到聚合也許不會(huì)發(fā)生 —— TCP 只保證數(shù)據(jù)的有序發(fā)送。
對(duì)大多數(shù)開發(fā)人員來說,該陷阱會(huì)引起困惑。
您想要獲得 TCP 的可靠性和 UDP 的幀同步。
除非改用其他的傳輸協(xié)議,比如流傳輸控制協(xié)議(STCP),
否則就要求應(yīng)用層開發(fā)人員來實(shí)現(xiàn)緩沖和分段功能。
調(diào)試套接字應(yīng)用程序的工具
GNU/Linux 提供幾個(gè)工具,它們可以幫助您發(fā)現(xiàn)套接字應(yīng)用程序中的一些問題。
此外,使用這些工具還有教育意義,而且能夠幫助解釋應(yīng)用程序和 TCP/IP 協(xié)議棧的行為。
在這里,您將看到對(duì)幾個(gè)工具的概述。查閱下面的 參考資料 了解更多的信息。
查看網(wǎng)絡(luò)子系統(tǒng)的細(xì)節(jié)
netstat 工具提供查看 GNU/Linux 網(wǎng)絡(luò)子系統(tǒng)的能力。
使用 netstat,可以查看當(dāng)前活動(dòng)的連接(按單個(gè)協(xié)議進(jìn)行查看),
查看特定狀態(tài)的連接(比如處于監(jiān)聽狀態(tài)的服務(wù)器套接字)和許多其他的信息。
清單 4 顯示了 netstat 提供的一些選項(xiàng)和它們啟用的特性。
清單 4.netstat 實(shí)用程序的用法模式
View all TCP sockets currently active $ netstat –tcp View all UDP sockets $ netstat –udp View all TCP sockets in the listening state $ netstat –listening View the multicast group membership information $ netstat –groups Display the list of masqueraded connections $ netstat –masquerade View statistics for each protocol $ netstat –statistics
盡管存在許多其他的實(shí)用程序,但 netstat 的功能很全面,
它覆蓋了 route、ifconfig 和其他標(biāo)準(zhǔn) GNU/Linux 工具的功能。
監(jiān)視流量
可以使用 GNU/Linux 的幾個(gè)工具來檢查網(wǎng)絡(luò)上的低層流量。
tcpdump 工具是一個(gè)比較老的工具,它從網(wǎng)上“嗅探”網(wǎng)絡(luò)數(shù)據(jù)包,打印到stdout 或記錄在一個(gè)文件中。
該功能允許查看應(yīng)用程序產(chǎn)生的流量和 TCP 生成的低層流控制機(jī)制。
一個(gè)叫做 tcpflow 的新工具與tcpdump 相輔相成,
它提供協(xié)議流分析和適當(dāng)?shù)刂貥?gòu)數(shù)據(jù)流的方法,而不管數(shù)據(jù)包的順序或重發(fā)。
清單 5 顯示 tcpdump 的兩個(gè)用法模式。
清單 5.tcpdump 工具的用法模式
Display all traffic on the eth0 interface for the local host
$ tcpdump -l -i eth// Show all traffic on the network coming from or going to host plato
$ tcpdump host plato// Show all HTTP traffic for host camus
$ tcpdump host camus and (port http) //View traffic coming from or going to TCP porton the local host
$ tcpdump tcp port
tcpdump 和 tcpflow 工具有大量的選項(xiàng),包括創(chuàng)建復(fù)雜過濾表達(dá)式的能力。
查閱下面的 參考資料 獲取更多關(guān)于這些工具的信息。
tcpdump 和 tcpflow 都是基于文本的命令行工具。
如果您更喜歡圖形用戶界面(GUI),有一個(gè)開放源碼工具 Ethereal 也許適合您的需要。
Ethereal 是一個(gè)專業(yè)的協(xié)議分析軟件,它可以幫助調(diào)試應(yīng)用層協(xié)議。
它的插入式架構(gòu)(plug-in architecture)可以分解協(xié)議,
比如 HTTP 和您能想到的任何協(xié)議(寫本文的時(shí)候共有 637 個(gè)協(xié)議)。
回頁首
總結(jié)
套接字編程是容易而有趣的,但是您要避免引入錯(cuò)誤或至少使它們?nèi)菀妆话l(fā)現(xiàn),
這就需要考慮本文中描述的這 5 個(gè)常見的陷阱,并且采用標(biāo)準(zhǔn)的防錯(cuò)性程序設(shè)計(jì)實(shí)踐。
GNU/Linux 工具和實(shí)用程序還可以幫助發(fā)現(xiàn)一些程序中的小問題。
記?。涸诓榭磳?shí)用程序的幫助手冊(cè)時(shí)候,跟蹤相關(guān)的或“請(qǐng)參見”工具。
您也許會(huì)發(fā)現(xiàn)一個(gè)必要的新工具。
關(guān)于linux rpc 開發(fā)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、開啟建站+互聯(lián)網(wǎng)銷售服務(wù),與企業(yè)客戶共同成長(zhǎng),共創(chuàng)價(jià)值。
網(wǎng)頁標(biāo)題:LinuxRPC開發(fā)簡(jiǎn)介(linuxrpc開發(fā))
URL分享:http://m.fisionsoft.com.cn/article/dhhhoic.html


咨詢
建站咨詢
