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

2021-09-01 22:24:11 字數 3607 閱讀 1505

在編譯和

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 原因之一,當前使用者對檔案沒有相應許可權 原因之一 子類已析...