当前位置: 首页 > news >正文

ICE常见编译和运行(异常)错误

在编译和 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 的名字是一定不能带该后缀 , 不然服务器无法正常工作 )

相关文章:

  • 【职场成长】一篇文章,讲清复盘!
  • java面向对象解释
  • 基于SpringBoot+Vue的公益互助系统的设计与实现
  • 不怕问题多,就怕不复盘,超详细复盘步骤呈上,建议收藏
  • 神经网络模式识别方法,神经网络模式识别代码
  • DOM--事件响应链(冒泡目标捕获)
  • 测试人生 | 做了低薪运营6年,妹纸靠什么转行拿下 20W 年薪?
  • 获取Optimism 代币OP的五种方式
  • bugku misc disordered_zip
  • JVM面试常考的4个问题详解
  • 画画用电容笔还是触控笔?电容笔10大品牌排行榜
  • 企业选择快鲸开源scrm系统的7大理由
  • 中国出口商对人民币波动持乐观态度!贬值“不会继续”!
  • Spring5总结
  • 虚拟内存地址和物理内存地址?为什么我们程序里地址连续?为什么需要TLB Translation lookaside buffer
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Akka系列(七):Actor持久化之Akka persistence
  • android图片蒙层
  • CSS实用技巧干货
  • dva中组件的懒加载
  • hadoop集群管理系统搭建规划说明
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java比较器对数组,集合排序
  • Java多线程(4):使用线程池执行定时任务
  • Mysql优化
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • vue 个人积累(使用工具,组件)
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 力扣(LeetCode)21
  • 聊一聊前端的监控
  • 七牛云假注销小指南
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 栈实现走出迷宫(C++)
  • 最近的计划
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 整理一些计算机基础知识!
  • ​queue --- 一个同步的队列类​
  • ​香农与信息论三大定律
  • #14vue3生成表单并跳转到外部地址的方式
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #stm32驱动外设模块总结w5500模块
  • (solr系列:一)使用tomcat部署solr服务
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (强烈推荐)移动端音视频从零到上手(上)
  • (一)Linux+Windows下安装ffmpeg
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)我也是一只IT小小鸟
  • .NET中两种OCR方式对比
  • /proc/vmstat 详解
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [ 数据结构 - C++]红黑树RBTree