编程方法学第五次机载机器
一.主题分析
主题1 :
1 .创建IDL接口HelloWorld.idl
2 .编译IDL接口: x :CORBA idljfall hello world.IDL
编译的结果是生成sample包,并生成以下文件
_HelloWorldStub.java
HelloWorld.java
HelloWorldHelper.java
HelloWorldHolder.java
HelloWorldOperations.java
HelloWorldPOA.java
3 .创建和编译服务端程序:HelloWorldServer.java
4 .创建和编译客户端程序: HelloWorldClient.java
5 .启动名称服务器: x : (CORBA tnameserv-orbinitialport 1050 )
启动服务端程序: x : (corbajavahelloworldserver-orbinitialport 1050
输出: HelloWorld is running
启动客户端程序: x :corbajavahelloworldclient-orbinitialport 1050
输出: Hello World!
主题2 :
编制连加、连减、加减混合等数学/- -运算并进行测试。
1 .创建IDL接口counter.idl
2 .编译IDL接口: x :CORBA idljfall counter.IDL。 编译结果生成CounterApp包
3 .创建和编译对象实现代码: CounterImpl.java
4 .创建和编译服务端程序: Server.java
5 .创建和编译客户端程序: Client.java
6 .驾驶
启动名称服务器: x :CORBA tnameserv-orbinitialport 1050
启动服务端程序: x :CORBA Java server-orbinitialport 1050
输出: Server started. Stop: Ctrl-c
启动客户端程序: x :corbajavaclient-orbinitialport 1050
二. CORBA模型分析
参考: https://blog.csdn.net/a单次世界大战/article/details/90316627
主题1 :
主题2 :
3 .组件实现(代码见压缩包) )。
四.测试、调试及运行结果
主题1 :
首先,创建一个新的HelloWorld文件夹,在其中创建HelloWorld.idl,然后编译IDL界面(x : (CORBA idljfall hello world.IDL ) )。
sample文件夹显示在HelloWorld.Iidl的同级目录下,单击以显示:
2…创建和编译服务端程序:HelloWorldServer.java和客户端程序: HelloWorldClient.java :
3 .启动名称服务器: x : (CORBA tnameserv-orbinitialport 1050 )
4 .启动服务端程序: x : (corbajavahelloworldserver-orbinitialport 1050
输出: HelloWorld is running
5 .启动客户端程序: x : (corbajavahelloworldclient-orbinitialport 1050 )
输出: Hello World!
主题是实现显示“Hello,World! 类的中文名称”字符串、
因此,必须将HelloWorld.idl中的字符串更改为wstring。 wstring用于处理多字节字符串。
将HelloWorldServer.java下的程序修改为:
然后,与运行CORBA程序时一样,可以获得以下结果:
主题2 :
创建新的Counter文件夹,将其放入Counter.idl中,然后编译IDL界面: x :CORBA idljfall counter.IDL
2 .生成编译结果CounterApp包
在CounterApp子目录中
3 .创建和编译对象实现代码: CounterImpl.java、Server.java、Client.java
4 .启动名称服务器: x : (CORBA tnameserv-orbinitialport 1050 )
5 .启动服务端程序: x : (CORBA Java server-orbinitialport 1050
输出: Server started. Stop: Ctrl-c
6 .启动客户端程序: x :corbajavaclient-orbinitialport 1050
5 .经验总结
主题1 :
有两种类型的CORBA处理字符串:字符串和wString。 string类型主要用于处理ASCII类型的字符串,而wstring用于处理多字节字符串,如中文。 要像作业一样最终显示中文课、名字和学习号码,必须将HelloWorld.Idl中的字符串更改为wstring,然后将中文课、名字和学习号码添加到HelloWorldServer.java中。 否则,运行到最后时会发生堆栈溢出。
主题2 :
在此主题中,首先创建一个新的Counter文件夹,将其放入Counter.idl中,编译IDL界面: x : (CORBA idljfall Counter.idl,然后根据编译结果编辑counter.IDL 创建和编译CounterImpl.java、Server.java和Client.java时,将出现以下错误:
但是,自己在确认上述操作正确的基础上,更换了电脑,执行了作业2,竟然成功了。 没有发生什么错误。 这也是个疑问。 也提交上次提交的工作中错误的文件夹Counter_false。 Counter是正确的文件夹。
此外,要运行服务、服务端程序和客户端程序,请启动三个cmd窗口。