最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

LabVIEW開(kāi)發(fā)TCP網(wǎng)絡(luò)通訊程序2

2023-04-19 19:54 作者:bjcyck  | 我要投稿

LabVIEW開(kāi)發(fā)TCP網(wǎng)絡(luò)通訊程序2

初始化偵聽(tīng)器狀態(tài) 此狀態(tài)目前僅執(zhí)行一次,其工作是創(chuàng)建啟動(dòng)與遠(yuǎn)程客戶(hù)端連接的偵聽(tīng)器。節(jié)點(diǎn)有兩個(gè)輸入,第一個(gè)是偵聽(tīng)器將監(jiān)視的端口。盡管我可以對(duì)此數(shù)字進(jìn)行硬編碼,但我選擇從應(yīng)用程序的屬性派生此值。在獨(dú)立可執(zhí)行文件中,應(yīng)用程序在啟動(dòng)時(shí)從其文件中讀取此值,從而使其在部署應(yīng)用程序后可重新配置。如果文件中不存在該鍵,則運(yùn)行工引擎默認(rèn)為L(zhǎng)abVIEW的官方端口號(hào)3363。

在開(kāi)發(fā)環(huán)境中運(yùn)行時(shí),此值仍可重新配置,但通過(guò)目標(biāo)的VI服務(wù)器設(shè)置進(jìn)行設(shè)置。要更改此值,請(qǐng)?jiān)陧?xiàng)目資源管理器窗口中單擊鼠標(biāo)右鍵,然后選擇。在出現(xiàn)的對(duì)話(huà)框中,選擇“類(lèi)別”。此時(shí),端口號(hào)字段在頁(yè)面部分中可見(jiàn),但已禁用。要編輯此值,請(qǐng)選中該框以啟用該設(shè)置,進(jìn)行所需的更改,然后取消選中該框,然后單擊按鈕。請(qǐng)務(wù)必記住在離開(kāi)此設(shè)置之前取消選中。如果不這樣做,項(xiàng)目將鏈接到指定的端口,并且測(cè)試平臺(tái)應(yīng)用程序中的TCP服務(wù)器在嘗試啟動(dòng)時(shí)將引發(fā)錯(cuò)誤60。 節(jié)點(diǎn)的另一個(gè)輸入是超時(shí)。但是,這不是節(jié)點(diǎn)等待完成偵聽(tīng)器創(chuàng)建的時(shí)間。將在一臺(tái)計(jì)算機(jī)上測(cè)試此代碼,因此不必?fù)?dān)心網(wǎng)絡(luò)出現(xiàn)故障之類(lèi)的事情。然而,出錯(cuò)的機(jī)會(huì)很多。例如,當(dāng)客戶(hù)端連接到我們的服務(wù)器時(shí),網(wǎng)絡(luò)可能出現(xiàn)問(wèn)題。在通過(guò)指定連接嘗試偵聽(tīng)器等待連接完成的時(shí)間,來(lái)解決這種情況。 等待連接狀態(tài) 此狀態(tài)等待連接嘗試,當(dāng)出現(xiàn)連接嘗試時(shí),完成連接。該操作采用輪詢(xún)操作形式,其中代碼會(huì)檢查連接嘗試,如果沒(méi)有連接嘗試,則等待一小段時(shí)間,然后再次檢查。需要較短的等待期,以使整個(gè)流程有機(jī)會(huì)響應(yīng)可能發(fā)生的其他事件。

如果在進(jìn)行調(diào)用時(shí)沒(méi)有掛起的連接嘗試,或者在5毫秒的窗口內(nèi)未收到嘗試,則節(jié)點(diǎn)將終止,錯(cuò)誤代碼為56。查找并捕獲該錯(cuò)誤代碼,以便其出現(xiàn)可用于決定下一步該做什么。如果子VI發(fā)現(xiàn)錯(cuò)誤56,則將重復(fù)當(dāng)前狀態(tài)并將超時(shí)設(shè)置為1000毫秒。 如果連接嘗試成功,節(jié)點(diǎn)還會(huì)輸出該特定連接獨(dú)有的新引用。此新引用將傳遞到移位寄存器,該寄存器可用于下一個(gè)狀態(tài)。 生成處理程序狀態(tài) 在此狀態(tài)下,代碼調(diào)用一個(gè)子VI(Launch?Connection?Handler.vi),該子VI生成一個(gè)進(jìn)程來(lái)處理在先前狀態(tài)下建立的遠(yuǎn)程連接。此連接處理程序采用可重入VI的形式,接受兩個(gè)輸入:對(duì)TCP連接的引用和啟用調(diào)試操作的布爾輸入。

連接處理程序必須是

可重入

進(jìn)程非常重要,原因有兩個(gè):首先,我們希望代碼能夠一次處理多個(gè)連接。其次,listener需要盡快重新監(jiān)聽(tīng)另一個(gè)新連接。 關(guān)閉偵聽(tīng)器狀態(tài) 最后,當(dāng)進(jìn)程停止時(shí),此事件將關(guān)閉打開(kāi)的連接,將超時(shí)設(shè)置為-1,并停止事件循環(huán)。 ?

但是,為什么有兩個(gè)連接需要關(guān)閉?為管理遠(yuǎn)程連接而啟動(dòng)的連接處理程序是否不會(huì)處理關(guān)閉該引用?雖然這一點(diǎn)是正確的,但其背后的邏輯是有缺陷的。在遠(yuǎn)程連接完成和開(kāi)始執(zhí)行之間有一個(gè)很小但有限的延遲。如果停止命令應(yīng)該發(fā)生在這么小的時(shí)間窗口內(nèi),則處理程序?qū)⒂肋h(yuǎn)不會(huì)啟動(dòng),因此無(wú)法關(guān)閉該新連接及其關(guān)聯(lián)的引用。 需要說(shuō)明的是,上述的例程和文檔,都是可以下載的,雙擊即可打開(kāi),其中壓縮文件是可以采用粘貼復(fù)制的方式,拷貝到硬盤(pán)上。這不是圖片,各位小伙伴看到后嘗試一下,這個(gè)問(wèn)題就不用加微信咨詢(xún)了。有關(guān)LabVIEW編程、LabVIEW開(kāi)發(fā)等相關(guān)項(xiàng)目,可聯(lián)系們。附件中的資料這里無(wú)法上傳,可去公司網(wǎng)站搜索下載。

LabVIEW開(kāi)發(fā)TCP網(wǎng)絡(luò)通訊程序2的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
清水河县| 阿鲁科尔沁旗| 抚松县| 余庆县| 汝阳县| 陈巴尔虎旗| 邢台县| 汝阳县| 商都县| 湘乡市| 清原| 偃师市| 银川市| 尖扎县| 确山县| 南投市| 沾化县| 义马市| 武山县| 鲁甸县| 盐亭县| 南漳县| 道孚县| 个旧市| 眉山市| 江西省| 玉环县| 铅山县| 且末县| 隆回县| 育儿| 浦县| 独山县| 扎兰屯市| 金华市| 眉山市| 长丰县| 韶关市| 漳浦县| 荔波县| 都江堰市|