第二十章 TCP 客戶端 服務(wù)器通信 - 立即發(fā)送模式(Q 模式)
立即發(fā)送模式(Q
模式)
在立即發(fā)送模式下冰肴,每個 WRITE
命令都作為其自己的數(shù)據(jù)包輸出。如果不使用立即發(fā)送模式,則必須包括終止符或發(fā)出命令 WRITE *–3
以輸出數(shù)據(jù)包熙尉。
通過指定“Q”
模式字符或/SENDIMMEDIATE
(或/SEN
)關(guān)鍵字參數(shù)進入此模式。要關(guān)閉此選項骡尽,請指定以下任一選項:
USE TCPDEVICE:(/SEN=0)
USE TCPDEVICE:(::"-Q")
要重新打開此選項,請指定以下任一選項:
USE TCPDEVICE:(/SEN=1)
USE TCPDEVICE:(::"+Q")
立即發(fā)送模式與/NODELAY
模式結(jié)合使用箫踩,前者在每次寫入時創(chuàng)建一個包谭贪,后者在創(chuàng)建每個包時立即發(fā)送。當(dāng)這兩個選項都啟用時俭识,單個數(shù)據(jù)突發(fā)的傳輸速度將最大化。當(dāng)每個數(shù)據(jù)單元的及時傳送至關(guān)重要時缚态,例如在傳輸鼠標(biāo)移動時堤瘤,這是有用的。當(dāng)兩者都關(guān)閉時本辐,一個數(shù)據(jù)包可能包含多個寫入,一個傳輸可能包含多個數(shù)據(jù)包老虫。這減少了網(wǎng)絡(luò)流量并提高了整體性能茫多。立即發(fā)送模式的默認(rèn)設(shè)置為關(guān)閉。/NODELAY
模式的默認(rèn)設(shè)置為打開菊卷。
流模式(S
模式)
在流模式下宝剖, IRIS
不會保留數(shù)據(jù)流中的TCP
消息邊界洁闰。發(fā)送時万细,如果數(shù)據(jù)不適合消息緩沖區(qū)纸泄, IRIS
會在將數(shù)據(jù)放入緩沖區(qū)之前刷新緩沖區(qū)腰素。
接收時,可以接收最大字符串長度的數(shù)據(jù)弓千。所有讀取都等待達到終止符或緩沖區(qū)變滿的完全超時洋访。當(dāng)禁用此模式(默認(rèn))時,處于數(shù)據(jù)包模式姻政。
繼承 TCP
設(shè)備的 Jobbed
進程自動設(shè)置為 Stream
格式∪蛋可以使用 USE
命令重置格式食绿。
緩沖區(qū)大小
TCP
設(shè)備的 ibufsiz
和 obufsiz
參數(shù)指定用于 TCP
輸入和輸出的內(nèi)部 IRIS
緩沖區(qū)的大小。在所有支持的平臺上乎完,它們可以取 1KB
到 1MB
之間的值品洛。然而摩桶,操作系統(tǒng)平臺可能使用不同大小的輸入和輸出緩沖區(qū)。如果操作系統(tǒng)平臺緩沖區(qū)小于 IRIS
緩沖區(qū)(例如辅斟,64KB
對 1MB
)芦拿,性能可能會受到影響:WRITE
操作可能需要多次訪問操作系統(tǒng)才能發(fā)送整個 IRIS
緩沖區(qū); READ
操作可能會返回受操作系統(tǒng)緩沖區(qū)大小限制的較小塊蔗崎。為獲得最佳性能,用戶應(yīng)試驗當(dāng)前操作系統(tǒng)以確定 ibufsiz
和 obufsiz
的哪些值可產(chǎn)生最佳結(jié)果芳撒。
服務(wù)器端OPEN
命令
處理服務(wù)器端 OPEN
時,它會建立一個 TCP
套接字并在套接字上偵聽適當(dāng)端口號上的傳入連接請求芥备。端口號要么在參數(shù)列表中明確指定舌菜,要么從設(shè)備名稱的數(shù)字部分派生。在套接字設(shè)置為偵聽后日月,OPEN
立即返回。
如果 OPEN
沒有成功山孔,則另一個進程可能已經(jīng)在該端口號上偵聽連接請求。
以下服務(wù)器端 OPEN
示例顯示了一個設(shè)備規(guī)范褐望,該規(guī)范允許讀取和寫入最大字符串大小的終止字符串串前,并使用最大長度讀取和寫入操作來整合 TCP
通道的使用。
OPEN "|TCP|4":(:4200:"PSTE"::32767:32767)
此示例中的參數(shù)參數(shù)如下:因為這是服務(wù)器端 OPEN
谨读,所以省略了第一個參數(shù)(主機名)坛吁。第二個參數(shù)明確指定端口號 (4200
)。第三個參數(shù)是模式代碼字符拨脉。第四個參數(shù)(終止符)被省略。第五個參數(shù)是輸入緩沖區(qū)大小矛缨。第六個參數(shù)是輸出緩沖區(qū)大小帖旨。
在以下示例中,端口號未指定為參數(shù)落竹;它源自設(shè)備名稱的數(shù)字部分瓮钥。此示例打開端口 4200
烹吵,沒有指定參數(shù)且超時為 10
秒:
OPEN "|TCP|4200"::10
服務(wù)器端 OPEN
的默認(rèn)輸入緩沖區(qū)大小 (ibufsiz
) 和輸出緩沖區(qū)大小 (obufsiz
) 參數(shù)值為 1,048,576
字節(jié) (1 MB
)桨武。
服務(wù)器端 OPEN
支持可選的隊列大小參數(shù)和可選的“G
”模式參數(shù)。這些選項不可用于客戶端 OPEN
凉蜂。
服務(wù)器端OPEN
支持可選的/CLOSELISTEN
關(guān)鍵字參數(shù)性誉。此選項對于客戶端OPEN
不可用。