


免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
科技学院课程设计报告( 2011- 2012年度第1学期)名 称: 网络软件程序设计 院 系: 信息工程系 班 级: 网络09K 学 号: 0919090301 学生姓名: 指导教师: 朵 春 红 设计周数: 1 成 绩: 日期:2011年 12 月21日网络软件程序设计课程设计任 务 书一、 目的与要求1 任务:实现基于Socket的C/S编程方法,着重体会使用Socket进行通信时,通信双方通信协议的制定方法。2 目的:使学生加深对网络通信协议、网络编程接口等基本概念、基本原理的理解,熟悉各种应用各种网络通信协议和网络编程接口编写网络应用程序的方法,拓宽学生的知识领域,锻炼学生的实践技能,培养学生科学的工作作风。3 要求:基本功能完善,界面美观,方便易用,操作无误;通过课程设计学生应该学会使用各种网络通信协议和网络编程接口编写不同类型的网络应用程序,具备初步分析、设计和开发网络应用软件的能力,具备分析与检查软件错误、解决和处理实验结果的能力。4 学生要求人数:1人。二、 主要内容编写一个基于C/S模式的数学服务器程序,并通过客户端进行访问。在这个分布式程序中,客户通过用户界面输入两个整型数组,并发送两个整型数组给数学服务器,数学服务器将两个数组相加,并将结果(作为一个数组)返回给客户。客户程序接收该结果数组,并将其输出到用户界面。程序应该包括如下内容:1. 简单的客户端输入/输出界面负责接收用户输入的数组,以及运算结果的输出。2. 算术客户程序:它所做的就是打开一个Socket连接,一个输入流和一个输出流。客户程序发送两个整型数组到服务器,然后就等待服务器将结果数组发回。当客户程序接收到数组后,它输出数组到客户界面,之后,关闭IO流和Socket。3. 算术服务器程序:运用有关多线程知识,编写多线程服务器。三、 进度计划序号设计内容完成时间备注1任务布置,资料查询,方案制定周一2算法设计,程序实现周二至周四3撰写报告,软件验收周五4四、设计成果要求1 完成规定的课程设计任务,所设计软件功能符合要求;2 完成课程设计报告,要求格式规范,内容具体而翔实,应体现自身所做的工作,注重对设计思路的归纳和对问题解决过程的总结。五、 考核方式1 平时成绩验收答辩实验报告;2 五级分制。 学生姓名: 指导教师:鲁斌 朵春红 2012 年 12 月 17 日网络软件程序设计课程设计一、 目的与要求任务:实现基于Socket的C/S编程方法,着重体会使用Socket进行通信时,通信双方通信协议的制定方法。1.目的:使学生加深对网络通信协议、网络编程接口等基本概念、基本原理的理解,熟悉各种应用各种网络通信协议和网络编程接口编写网络应用程序的方法,拓宽学生的知识领域,锻炼学生的实践技能,培养学生科学的工作作风。2.要求:基本功能完善,界面美观,方便易用,操作无误;通过课程设计学生应该学会使用各种网络通信协议和网络编程接口编写不同类型的网络应用程序,具备初步分析、设计和开发网络应用软件的能力,具备分析与检查软件错误、解决和处理实验结果的能力。3.学生要求人数:1人。二、 主要内容编写一个基于C/S模式的数学服务器程序,并通过客户端进行访问。在这个分布式程序中,客户通过用户界面输入两个整型数组,并发送两个整型数组给数学服务器,数学服务器将两个数组相加,并将结果(作为一个数组)返回给客户。客户程序接收该结果数组,并将其输出到用户界面。程序应该包括如下内容:1.简单的客户端输入/输出界面负责接收用户输入的数组,以及运算结果的输出。/创建套接字,声明全局变量,并让receive可以接收 Socket socketClient; public Form1() InitializeComponent(); TextBox.CheckForIllegalCrossThreadCalls=false; /负责发送的 private void btGet_Click(object sender, EventArgs e) String s=tBx1.Text.Trim()+|+optxt.Text+|+tBx2.Text.Trim(); socketClient.Send(System.Text.Encoding.UTF8.GetBytes(s); /负责接受的 void rec() while(true) byte bb=new byte1024; int length=socketClient.Receive(bb); string s = System.Text.Encoding.UTF8.GetString(bb, 0, length); tBxResult.Text=s; 2.算术客户程序:它所做的就是打开一个Socket连接,一个输入流和一个输出流。客户程序发送两个整型数组到服务器,然后就等待服务器将结果数组发回。当客户程序接收到数组后,它输出数组到客户界面,之后,关闭IO流和Socket。/ / 连接服务器,套接字创建在外方便使用 / / / private void btlCon_Click(object sender, EventArgs e) socketClient=new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);/创建IP地址和网络节点对象 IPAddress address = IPAddress.Parse(ConfigurationSettings.AppSettingsIP); IPEndPoint endPoint = new IPEndPoint(address, int.Parse(ConfigurationSettings.AppSettingsPort);/将负责监听的套接字绑定到唯一的IP和端口上 socketClient.Connect(endPoint); Thread thr=new Thread(rec); thr.IsBackground=true; thr.Start(); /IP地址和端口号,由于我这是在一台机子上运行的所以IP为 3.算术服务器程序:运用有关多线程知识,编写多线程服务器。 public Server() /初始化 InitializeComponent(); Socket socketWatch; Thread thrcon; Dictionary solist = new Dictionary(); Dictionary thlist = new Dictionary();/开启服务按钮的功能 private void btnStart_Click(object sender, EventArgs e) /开始监听放入监听函数中 /创建服务器端监听套接字 socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);/创建IP和网络节点对象 IPAddress address = IPAddress.Parse(ConfigurationSettings.AppSettingsIP); IPEndPoint endPoint = new IPEndPoint(address, int.Parse(ConfigurationSettings.AppSettingsPort); socketWatch.Bind(endPoint); socketWatch.Listen(20); thrcon = new Thread(JianTing); thrcon.IsBackground = true; thrcon.Start(); /创建监听程序,为每一个套接字创建一个线程 void JianTing() while (true) /开始监听 Socket sokConnection = socketWatch.Accept(); this.solist.Add(sokConnection.RemoteEndPoint.ToString(), sokConnection); Thread singglethr = new Thread(MyRec); singglethr.IsBackground = true; singglethr.Start(sokConnection); this.thlist.Add(sokConnection.RemoteEndPoint.ToString(), singglethr); /开始创建receive函数 void MyRec(object sok) Socket sigleso = sok as Socket; while (true) byte arr = new byte1024; int length = sigleso.Receive(arr); string s = System.Text.Encoding.UTF8.GetString(arr, 0, length); string ssss = SuanShu(s.Split(new char | ); sigleso.Send(System.Text.Encoding.UTF8.GetBytes(ssss); string SuanShu(string s) switch (s1) case +: return (int.Parse(s0) + int.Parse(s2).ToString(); case -: return (int.Parse(s0) - int.Parse(s2).ToString(); case *: return (int.Parse(s0) * int.Parse(s2).ToString(); case /: return (int.Parse(s0) / int.Parse(s2).ToString(); default: return 异常; 三、 输出结果加法运算乘法运算除法运算减法运算四、 实验心得通过本次试验,基本上实现了实现基于Socket的C/S编程方法,体会了使用Socket进行通信时,通信双方通信协议的制定方法。同时还有以下收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业互联网平台TEE在工业互联网安全监测与预警中的技术应用
- 电脑维保合同
- 信息技术教育教学总结
- 2025年化肥行业市场前景及投资研究报告:培训课件
- 巡特警网络安全培训课件
- 巡察基本知识课件
- 岩土基础课程选择
- 小龙虾水彩画课件
- 小鸭子嘎嘎叫课件
- 工亡赔偿及赔偿责任承担合同
- GB/T 21063.4-2007政务信息资源目录体系第4部分:政务信息资源分类
- 机修车间岗位廉洁风险点及防范措施表
- 全新版尹定邦设计学概论1课件
- 牙及牙槽外科
- 文物建筑保护修缮专项方案
- 万用表 钳形表 摇表的使用课件
- 63T折弯机使用说明书
- 170位真实有效投资人邮箱
- 工程力学ppt课件(完整版)
- 《区域经济学》讲义(1)课件
- 船模制作教程(课堂PPT)课件(PPT 85页)
评论
0/150
提交评论