ICE 的常見執行錯誤

2021-06-16 18:14:30 字數 2916 閱讀 1086

在編譯和

ice應用相關的檔案中,經常因為

ice相關的檔案包含關係而導致編譯無法通過,此時的錯誤一般提示和

handle.h

相關。然而想要解決這樣的錯誤,一般只需要把在無法編譯成

.o檔案的

.cpp

檔案中和

ice檔案相關的標頭檔案放在該

.cpp

檔案的起始行即可。也就是說,根據提示,把

.cpp

檔案中最早提示導致出錯的

.h檔案放在起始行。

ice的常見執行錯誤(異常

): 1 使用的位址錯誤 ,ip 並非本地 ip:  發生在初始化伺服器時 , 沒辦法初始化 adapter.

錯誤資訊 :  (ip 錯誤 )

./test: network.cpp:475: ice::socketexception:

socket exception: cannot assign requested address

另外 : 已經啟動伺服器後又重新啟動 : 發生在初始化伺服器時 , 沒辦法初始化 adapter.

錯誤資訊 : (port 已經被使用 )

./server: network.cpp:475: ice::socketexception:

socket exception: address already in use

///stringtoproxy 對於任何 string 都是有效的 , 均可以生成相應** , 但是該**是否有效是無法保證的 . 如果**無效 , 也就是說根本就沒有這樣的 adapter 或者物件 , 那麼使用 checkcast 或直接用該**呼叫相應物件介面均會拋異常 . 下面對每種情況加於分析 .

2 使用的** ip 錯誤 :  發生在使用**呼叫介面的時候

原因 : 根本就沒有相應的通訊器存在 .

錯誤資訊 :  ( 使用的** ip 錯誤 )

丟擲異常 : ice::connectfailedexception ( 需要幾秒 , 需要進行搜尋 )

3 使用的**埠錯誤 , 兩邊不一致 : 發生在使用**呼叫介面的時候

原因 : 存在通訊器 , 但是不存在相應的物件介面卡 .

錯誤資訊 :

丟擲異常 : ice::connectionrefusedexception ( 很快 , 埠沒有被啟用引起的 , 無人監聽該埠 )

4 使用的物件名字不正確 : 發生在使用**呼叫介面的時候

原因 : 能夠找到相應的物件介面卡 , 但是該物件介面卡中無法找到相應的物件

錯誤資訊 :

丟擲異常 : ice::objectnotexistexception ( 很快 )

5 對方程式沒用啟用 , 也就是伺服器沒有啟用 : 發生在使用**呼叫介面的時候

原因 : 根本就沒有相應的通訊器存在 .

錯誤資訊 :

丟擲異常 : ice::connectionrefusedexception ( 很快 )

6 連線突然斷開 ( 比如對方因為段錯誤而程式停止 , 或者在連線過程中正常關閉 ) : 發生在使用**呼叫介面的時候 ( 連線丟失 )

原因 : 已經建立連線的對方突然斷開

錯誤資訊 :

warning: connection exception:

tcptransceiver.cpp:217: ice::connectionlostexception:

connection lost: recv() returned zero

local address = 10.0.0.4:10050

remote address = 10.0.0.200:33412

( 伺服器端的錯誤 , 使用 createobjectadapter() 建立物件介面卡 )

7 伺服器端沒有指定 adapter 的埠和 ip, 僅僅隨便給了乙個名字 , 並使用該名字從配置檔案中讀取資訊 :  啟動伺服器時沒有問題正常 , 但是客戶端無法連線

原因 : 物件介面卡無效

錯誤資訊 :

丟擲異常 : ice::connectionrefusedexception ( 很快 )

8 啟動伺服器時 , 給定的 adapter 的名字和配置檔案中使用的不一致 : 啟動伺服器時沒有問題正常 , 但是客戶端無法連線 ( 無法從配置檔案中獲取所需要的資訊 port 和 ip)

原因 : 物件介面卡無效

錯誤資訊 :

丟擲異常 : ice::connectionrefusedexception ( 很快 )

9 配置檔案中的名字和程式中給定的 adapter 名字一致 , 也就是說缺少 endpoints, 作為字尾 . 啟動伺服器時沒有問題正常 , 但是客戶端無法連線 ( 無法從配置檔案中獲取所需要的資訊 port 和 ip)

原因 : 物件介面卡無效

錯誤資訊 :

丟擲異常 : ice::connectionrefusedexception ( 很快 )

10 配置檔案中的名字字尾 endpoints 寫錯 , 比如 endpoint. 啟動伺服器時沒有問題正常 , 但是客戶端無法連線 (無法從配置檔案中獲取所需要的資訊 port 和 ip)

原因 : 物件介面卡無效

錯誤資訊 :

丟擲異常 : ice::connectionrefusedexception ( 很快 )

11 程式中給定的 adapter 名字多了字尾 endpoints( 或者其他字元 , 甚至是 」.」). 啟動伺服器時沒有問題正常 , 但是客戶端無法連線 ( 無法從配置檔案中獲取所需要的資訊 port 和 ip)

原因 : 物件介面卡無效

錯誤資訊 :

丟擲異常 : ice::connectionrefusedexception ( 很快 )

( 說明 : 也就是說配置檔案中必須有 endpoints 作為字尾 , 而在程式中給定 adapter 的名字是一定不能帶該字尾 ,不然伺服器無法正常工作 )

ICE常見編譯和執行 異常 錯誤

在編譯和 ice應用相關的檔案中,經常因為 ice相關的檔案包含關係而導致編譯無法通過,此時的錯誤一般提示和 handle.h 相關。然而想要解決這樣的錯誤,一般只需要把在無法編譯成 o檔案的 cpp 檔案中和 ice檔案相關的標頭檔案放在該 cpp 檔案的起始行即可。也就是說,根據提示,把 cpp...

ICE常見編譯和執行 異常 錯誤

在編譯和 ice應用相關的檔案中,經常因為 ice相關的檔案包含關係而導致編譯無法通過,此時的錯誤一般提示和 handle.h 相關。然而想要解決這樣的錯誤,一般只需要把在無法編譯成 o檔案的 cpp 檔案中和 ice檔案相關的標頭檔案放在該 cpp 檔案的起始行即可。也就是說,根據提示,把 cpp...

C 常見編譯和執行期錯誤

原因分析 父類中的虛函式只有宣告,沒有定義。解決方案 1.定義相關的虛函式的實現 2.定義成純虛函式留給後代實現,virtual int broadcast const char pbuf,const unsigned bufsize 0 原因之一,當前使用者對檔案沒有相應許可權 原因之一 子類已析...