欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

    计算机网络-网络程序设计.docx

    • 资源ID:11576795       资源大小:156.36KB        全文页数:14页
    • 资源格式: DOCX        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机网络-网络程序设计.docx

    广州大学学生实验报告开课学院及实验室:计算机科学与工程实验室2014年12月13日学院计算机科学与教育软件学院年级/专业/班姓名学号实验课程名称计算机网络实验成绩实验项目名称网络程序设计指导老师熊伟1、 程序演示使用苹果编程语言实现程序效果,模拟器运行结果如下:启动后画面单击C机单击C后单击D,显示结果单击A后单击C,显示结果2、 程序设计思路根据网桥转发规则,我首先设计了PC类,代表主机。Bridege类,代表网桥,实例方法包括一些数据帧转发,登记移除转发表等。Framing类,代表数据帧,包括一些属性:目的地址,源地址等。由于算法并不复杂,而且基于ios平台的开发本来就比较熟手,开发过程并没遇到什么困难。3、 程序流程图3、 程序源代码由于篇幅有限,就不粘贴过多的代码。所有源代码压缩至附件上传。下面仅显示部分代码。Network类,构建UI画面,并负责协调处理PC,Bridge直接数据的传递。/ Network.m/ BridgeTransfer/ Created by Jeans on 12/14/14./ Copyright (c) 2014 Jeans. All rights reserved./#import "Network.h"#import "ShapeView.h"#import "Bridge.h"#import "PC.h"#define AppSize UIScreen mainScreen.applicationFrame.size#define HorizontalSpacing 35#define VerticalSpacing 80#define kAnimationDuring 2interface Network()<PCDelegate>property (strong, nonatomic) PC *A;property (strong, nonatomic) PC *B;property (strong, nonatomic) PC *C;property (strong, nonatomic) PC *D;property (strong, nonatomic) Bridge *B1;property (strong, nonatomic) ShapeView *pathShapeView;property (strong, nonatomic) ShapeView *backgroundShapeView;property (strong, nonatomic) UILabel *resultLabel;endimplementation Network- (id)initWithFrame:(CGRect)frame if (self = super initWithFrame:frame)/ self.backgroundColor = UIColor grayColor; /添加对象 CGPoint pcPoint = CGPointMake(HorizontalSpacing, VerticalSpacing); self.A = self NewPCByOrigin:pcPoint; self.A.name = "A" pcPoint.x += HorizontalSpacing + self.A.frame.size.width; self bringSubviewToFront:self.A; self.B = self NewPCByOrigin:pcPoint; self.B.name = "B" pcPoint.x += HorizontalSpacing + self.B.frame.size.width; self.B1 = self NewBridgeByOrigin:CGPointMake(pcPoint.x, 10); pcPoint.x += HorizontalSpacing + self.B1.frame.size.width; self.B1.port1PCs = self.A,self.B; self.C = self NewPCByOrigin:pcPoint; self.C.name = "C" pcPoint.x += HorizontalSpacing + self.C.frame.size.width; self.D = self NewPCByOrigin:pcPoint; self.D.name = "D" pcPoint.x += HorizontalSpacing + self.D.frame.size.width; self.B1.port2PCs = self.C,self.D; /绘制背景线 CGFloat y = self.B1.frame.origin.y + self.B1.frame.size.height - 10; UIBezierPath *path = UIBezierPath bezierPath; path moveToPoint:CGPointMake(10, y); path addArcWithCenter:CGPointMake(10, y) radius:4.0 startAngle:0 endAngle:2*M_PI clockwise:YES; CGPoint p = CGPointMake(self.B1.frame.origin.x, y); path addLineToPoint:p; p.x += self.B1.frame.size.width; path moveToPoint:p; p.x = self.frame.size.width - 10; path addLineToPoint:p; path addArcWithCenter:p radius:4.0 startAngle:0 endAngle:2*M_PI clockwise:YES; p.x = self.A.frame.origin.x+self.A.frame.size.width/2; path moveToPoint:p; path addLineToPoint:CGPointMake(p.x, VerticalSpacing); p.x = self.B.frame.origin.x+self.B.frame.size.width/2; path moveToPoint:p; path addLineToPoint:CGPointMake(p.x, VerticalSpacing); p.x = self.C.frame.origin.x+self.C.frame.size.width/2; path moveToPoint:p; path addLineToPoint:CGPointMake(p.x, VerticalSpacing); p.x = self.D.frame.origin.x+self.D.frame.size.width/2; path moveToPoint:p; path addLineToPoint:CGPointMake(p.x, VerticalSpacing); self.backgroundShapeView.shapeLayer.path = path.CGPath; self drawLineAnimation:self.backgroundShapeView.shapeLayer; return self;- (PC*)NewPCByOrigin:(CGPoint)aOrigin PC *pc = (PC*)NSBundle mainBundleloadNibNamed:"PC" owner:self options:nillastObject; pc.frame = CGRectMake(aOrigin.x, aOrigin.y, pc.frame.size.width, pc.frame.size.height); pc.delegate = self; self addSubview:pc; return pc;- (Bridge*)NewBridgeByOrigin:(CGPoint)aOrigin Bridge *bri = (Bridge*)NSBundle mainBundleloadNibNamed:"Bridge" owner:self options:nillastObject; bri.frame = CGRectMake(aOrigin.x, aOrigin.y, bri.frame.size.width, bri.frame.size.height); self addSubview:bri; return bri;- (ShapeView*)backgroundShapeView if (!_backgroundShapeView) _backgroundShapeView = ShapeView allocinit; _backgroundShapeView.shapeLayer.fillColor = nil; _backgroundShapeView.shapeLayer.strokeColor = UIColor colorWithRed:0 green:0 blue:0 alpha:1.CGColor; _backgroundShapeView.shapeLayer.lineWidth = 1; _backgroundShapeView.shapeLayer.frame = self.bounds; _backgroundShapeView.shapeLayer addSublayer:self.A.layer; _backgroundShapeView.shapeLayer addSublayer:self.B.layer; _backgroundShapeView.shapeLayer addSublayer:self.C.layer; _backgroundShapeView.shapeLayer addSublayer:self.D.layer; self.layer addSublayer:_backgroundShapeView.shapeLayer; return _backgroundShapeView;- (UILabel*)resultLabel if (!_resultLabel) _resultLabel = UILabel allocinitWithFrame:CGRectMake(self.B1.frame.origin.x+self.B1.frame.size.width/2 - 250,200,500,50); _resultLabel.textAlignment = NSTextAlignmentCenter; _resultLabel.backgroundColor = UIColor clearColor; self.backgroundShapeView.shapeLayer addSublayer:_resultLabel.layer; return _resultLabel;#pragma mark - 画线-(void)drawLineAnimation:(CALayer*)layer CABasicAnimation *bas = CABasicAnimation animationWithKeyPath:"strokeEnd" bas.duration = kAnimationDuring; bas.delegate = self; bas.fromValue = 0.0; bas.toValue = 1.0; layer addAnimation:bas forKey:"key"#pragma mark - PC Delegate- (void)PCPressed:(PC *)aPC self.resultLabel.text = self.B1 addOrRemovePC:aPC;endBridge类,网桥类,根据网桥转发规则实现转发功能,并输出对应文字提示。/ Bridge.m/ BridgeTransfer/ Created by Jeans on 12/14/14./ Copyright (c) 2014 Jeans. All rights reserved./#import "Bridge.h"#import "PC.h"interface Bridge()property (strong, nonatomic) NSMutableArray *currentPCs;endimplementation Bridge- (id)initWithCoder:(NSCoder *)aDecoder if (self = super initWithCoder:aDecoder) self customInit; return self;- (id)initWithFrame:(CGRect)frame if (self = super initWithFrame:frame) self customInit; return self;- (void)customInit - (NSMutableArray*)currentPCs if (!_currentPCs) _currentPCs = NSMutableArray allocinit; return _currentPCs;- (NSString*)addOrRemovePC:(PC *)aPC NSString *string = nil; if (self.currentPCs containsObject:aPC) self.currentPCs removeObject:aPC; else self.currentPCs addObject:aPC; string = NSString stringWithFormat:"%->",aPC.name; if (self.currentPCs.count = 2) PC *p1 = self.currentPCs0; PC *p2 = self.currentPCs1; /转发 string = NSString stringWithFormat:"%->% ",p1.name,p2.name; if (self.port1PCs containsObject:p1 && self.port1PCs containsObject:p2) string = string stringByAppendingFormat:"两机同在网段1,不用转发" else if (self.port2PCs containsObject:p1 && self.port2PCs containsObject:p2) string = string stringByAppendingFormat:"两机同在网段2,不用转发" else if (self.port1PCs containsObject:p1) string = string stringByAppendingFormat:"网段1:% 发往 网段2:% 成功",p1.name,p2.name; else string = string stringByAppendingFormat:"网段2:% 发往 网段1:% 成功",p1.name,p2.name; self.currentPCs removeAllObjects; return string;end第14页

    注意事项

    本文(计算机网络-网络程序设计.docx)为本站会员(scccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开