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