使用NET Remoting 创建五子棋对战游戏(下)文库.pdf
上传人:qw****27 上传时间:2024-09-11 格式:PDF 页数:20 大小:204KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

使用NET Remoting 创建五子棋对战游戏(下)文库.pdf

使用NETRemoting创建五子棋对战游戏(下)文库.pdf

预览

免费试读已结束,剩余 10 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

使用Remoting开发分布式应用——联机五子棋游戏(下)任旻微软特约讲师renmin@bjut.edu.cn本次课程难度200(普通)Level200设计比编写代码的难度更大本次课程内容包括单机版游戏的介绍联机版游戏的框架游戏的设计实现(Implement)测试(Test)调试(Debug)本次课程内容包括实现(Implement)单机版游戏改造思路通信层业务逻辑层表现层测试(Test)调试(Debug)通讯层IGame接口决定了Contact那些方法可以调用应该传输什么数据(参数,返回值)MarchelByRefObjectChannel通讯细节通讯协议(Tcp)传输的数据格式(Binary)业务逻辑层根据IGame接口,实现类封装为FiveChess.Game类记录下棋步骤存储棋盘判断应该那位选手判断胜负对外发布状态表现层封装为控件接受用户输入展示游戏状态(棋盘、胜负)本次课程内容包括实现(Implement)测试(Test)调试(Debug)实施步骤&测试将整个窗体封装为一个控件。控件可以运行后,将一部分代码(胜负代码,存储状态的代码)分离到另一个类中。使用本地对象调试。本地对象远程化,在一个窗口中调试两个控件。在本机调试两个程序(忽略网络传输的问题)在两台计算机调试本次课程内容包括实现(Implement)测试(Test)调试(Debug)单机调试将整个窗体封装为一个控件。从中剥离业务逻辑部分。在表现层控件中引用Game对象在本机调试业务逻辑对象和控件调试通讯层(1)创建应用程序当我试图在一台计算机上同时运行两个程序的时候出现了问题。Thisremotingproxyhasnochannelsinkwhichmeanseithertheserverhasnoregisteredserverchannelsthatarelistening,orthisapplicationhasnosuitableclientchanneltotalktotheserver.调试通讯层(1)创建应用程序当我试图在一台计算机上同时运行两个程序的时候出现了问题。Thisremotingproxyhasnochannelsinkwhichmeanseithertheserverhasnoregisteredserverchannelsthatarelistening,orthisapplicationhasnosuitableclientchanneltotalktotheserver.没有注册通道为什么之前没有出现?调试通讯层(2)点击“创建”按钮出现以下异常Becauseofsecurityrestrictions,thetypeSystem.Runtime.Remoting.ObjRefcannotbeaccessed.调试通讯层(2)点击“创建”按钮出现以下异常Becauseofsecurityrestrictions,thetypeSystem.Runtime.Remoting.ObjRefcannotbeaccessed.原因:没有完全的反序列化级别为什么之前没有出现?调试通讯层(3)点击“创建”按钮再次出现新的异常出现不同的异常是一种成功的标志☺Remotingconfigurationfailedwiththeexception'System.Runtime.Remoting.RemotingException:Thechannel'tcp'isalreadyregistered.如果把服务器单独放到一个进程就没问题。调试通讯层(3)点击“创建”按钮再次出现新的异常出现不同的异常是一种成功的标志☺Remotingconfigurationfailedwiththeexception'System.Runtime.Remoting.RemotingException:Thechannel'tcp'isalreadyregistered.如果把服务器单独放到一个进程就没问题。原因:在AppDomin中Channel注册不能重名,匿名Channel会使用默认名称为什么之前没有出现?Question&Answer如需提出问题,请单击“提问”按钮并在随后显示的浮动面板中输入问题内容。一旦完成问题