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

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

LabVIEWCompactRIO 開發(fā)指南21 使用TCP/IP時處理孤立套接字

2023-05-17 09:01 作者:bjcyck  | 我要投稿

LabVIEWCompactRIO?開發(fā)指南21

使用TCP/IP時處理孤立套接字

無法重新建立偵聽TCP套接字是設(shè)計(jì)基于TCP/IP的應(yīng)用程序時最常見的挑戰(zhàn)之一。此癥狀是由終止客戶端或服務(wù)器應(yīng)用程序后發(fā)生的孤立套接字引起的。如果按照本節(jié)中所述的技術(shù)設(shè)計(jì)代碼,則可以避免此問題。本節(jié)概述了孤立套接字以及使用TCP/IP進(jìn)行網(wǎng)絡(luò)通信時推薦的設(shè)計(jì)模式。

孤立套接字概述

使用基于TCP/IP的應(yīng)用程序,有一個客戶端/服務(wù)器方案,其中服務(wù)器偵聽客戶端打開連接的特定端口。建立連接后,客戶端和服務(wù)器將交換數(shù)據(jù),直到連接終止。終止可能由以下原因引起:

■故意終止(用戶停止服務(wù)器或客戶端應(yīng)用程序)

■硬件斷開連接或停機(jī)

■客戶端或服務(wù)器應(yīng)用程序崩潰

如果嘗試在終止后立即恢復(fù)連接,則會看到一個錯誤對話框,錯誤代碼為60,來自TCPListen.vi,類似于圖4.27中的錯誤對話框。無法重新建立偵聽TCPsocket是由孤立套接字引起的。孤立套接字是啟動終止的套接字。如果在嘗試重新建立連接之前等待60秒,錯誤消息將消失。但是,許多系統(tǒng)無法承受60秒的停機(jī)時間。

4.27.客戶端/服務(wù)器連接終止時生成錯誤代碼60。

60秒超時是有意為之。識別孤立套接字后,TCP/IP會使該套接字在60秒內(nèi)不可用,以便其他套接字無法與其通信。如果將TCP/IP與郵政服務(wù)進(jìn)行比較,終止相當(dāng)于一個家庭搬出家。郵政服務(wù)暫時關(guān)閉該郵箱,以便在新人搬進(jìn)來時,他們不會收到不屬于他們的郵件。TCP/IP故意使套接字不可用,以便它可以通過網(wǎng)絡(luò)可靠地發(fā)送數(shù)據(jù)。

防止孤立套接字

本節(jié)提供了兩種防止孤立套接字的方法。

設(shè)計(jì)應(yīng)用程序,以便只有客戶端才能終止連接

在大多數(shù)情況下,孤立套接字問題在服務(wù)器端更為嚴(yán)重。通常,客戶端端口是動態(tài)分配的,但服務(wù)器端口是固定的。當(dāng)服務(wù)器關(guān)閉連接時,服務(wù)器端口將被鎖定。如果連接始終從客戶端終止,則可以顯著降低處理錯誤60的風(fēng)險(xiǎn)。

設(shè)計(jì)服務(wù)器應(yīng)用程序時,需要遵循三個規(guī)則:

1.不要在超時時忽略超時錯誤來關(guān)閉連接。

2.如果要停止服務(wù)器應(yīng)用程序,請向客戶端發(fā)送消息并讓客戶端終止連接。等待非超時錯誤(62或56),并在出現(xiàn)錯誤時關(guān)閉服務(wù)器應(yīng)用程序。

3.不要在發(fā)生事件時關(guān)閉服務(wù)器應(yīng)用程序。如果發(fā)生應(yīng)停止應(yīng)用程序的事件,請向客戶端發(fā)送消息并讓客戶端終止連接。然后在出錯時關(guān)閉服務(wù)器應(yīng)用程序。

4.28.此示例VI阻止服務(wù)器關(guān)閉網(wǎng)絡(luò)連接。

分配動態(tài)端口

避免孤立套接字的另一種方法是在客戶端和服務(wù)器上分配動態(tài)端口。有兩種方法可以做到這一點(diǎn):手動使用UDP建立端口(如果安裝了STM參考庫,請參閱STM Distributed Clients示例)或使用NI服務(wù)定位器。要使用NI服務(wù)定位器,則需要必須有LabVIEW8.5或更高版本,并且NI服務(wù)定位器必須運(yùn)行。使用NI服務(wù)定位器時,將服務(wù)名稱傳遞到TCP開放連接和TCP創(chuàng)建偵器函數(shù)上的服務(wù)名稱輸入中。

4.29.使用NI服務(wù)定位器確保客戶端和服務(wù)器上的動態(tài)端口分配


需要說明的是,上述的例程和文檔,都是可以下載的,雙擊即可打開,其中壓縮文件是可以采用粘貼復(fù)制的方式,拷貝到硬盤上。這不是圖片,各位小伙伴看到后嘗試一下,這個問題就不用加微信咨詢了。有關(guān)LabVIEW編程、LabVIEW開發(fā)等相關(guān)項(xiàng)目,可聯(lián)系們。附件中的資料這里無法上傳,可去公司網(wǎng)站搜索下載。


LabVIEWCompactRIO 開發(fā)指南21 使用TCP/IP時處理孤立套接字的評論 (共 條)

分享到微博請遵守國家法律
遵化市| 泽普县| 济宁市| 常德市| 江陵县| 巍山| 壤塘县| 卓尼县| 同心县| 饶平县| 南部县| 固阳县| 客服| 乌拉特后旗| 铜川市| 成安县| 荆门市| 铜川市| 开江县| 青龙| 诸城市| 张家界市| 来凤县| 吐鲁番市| 奈曼旗| 靖州| 乌鲁木齐市| 德清县| 惠安县| 兴化市| 恩施市| 花莲县| 全椒县| 云浮市| 惠来县| 张家港市| 咸丰县| 隆尧县| 文登市| 灵丘县| 日照市|