《深圳大学-java程序设计网络编程应用》由会员分享,可在线阅读,更多相关《深圳大学-java程序设计网络编程应用(11页珍藏版)》请在金锄头文库上搜索。
1、深圳 大 学 实 验报 告课程名称:Jaa程序设计 实验项目名称: 必实验6 网络编程应用 学院: 计算机与软件学院 专业: 指引教师:尹剑飞 报告人: 黄钢 学号: 017 班级: 计软4班 实验时间: 1月19日(周一)-2月29日(周四) 实验报告提交时间: 12月28日星期四 教务部制实验目的与规定: 实验目的: 掌握网络通信合同及有关程序设计。实验规定: () 运用数据报通信方式试编写一程序,该程序生成两个客户端,一种服务器端,两个客户端可以互相进行简短的文字交流。在报告中附上程序截图、完整的运营成果和简要文字阐明。(50分) (2). 编写Java应用程序,根据作业“单机版中英文单
2、词测试程序”的规定,将之改为网络版。客户端和服务器端建立套接字连接后,服务器端向客户端发送一种英文单词和四个中文解释(分别为A,B,C,),假设只有一种解释是对的的;客户端将答案发送给服务器端;服务器端判断客户端的答案与否对的,并将已经给出的题目的数量和答对的数量返回给客户端,同步也把下一种英文单词和四个中文解释发送给客户端;如此循环1次结束单词测试。规定使用图形界面。词库应至少涉及1个英文单词和相应的对的解释和错误解释。在报告中附上程序截图、完整的运营成果和简要文字阐明。(50分)阐明:(1)本次实验课作业满分为100分,占总成绩的比例(待定)。()本次实验课作业截至时间12月29日(周四)
3、3:59。(3)报告正文:请在指定位置填写,本次实验需要单独提交源程序文献。(4)个人信息:WORD文献名中的“姓名”、“学号”,请改为你的姓名和学号;实验报告的首页,请精确填写“学院”、“专业”、“报告人”、“学号”、“班级”、“实验报告提交时间”等信息。(5)提交方式:截至时间前,请在MOOC平台中提交;截至时间后一周内提交(即延迟提交),请发邮件到,并在邮件中注明课程名称、作业名称、姓名、学号等信息,我收到后会及时答复。()发现抄袭(涉及复制&粘贴整句话、整张图),该次作业记零分。()延迟提交(即2月9日23:5之后),不得分。(8)期末考试阶段补交无效。(1). 运用数据报通信方式试编
4、写一程序,该程序生成两个客户端,一种服务器端,两个客户端可以互相进行简短的文字交流。在报告中附上程序截图、完整的运营成果和简要文字阐明。(50分)一方面在服务器端建立两个Nde对象(用来标记不同客户端),即clent和cl的adre和port。然后在主线程中启动死循环,在每次循环中启动一种DatgramSoct对象来接受数据包,当接受到数据包后,解析出它是由哪个客户端发过来的,然后在最开始建立的两个ode对象中找到该数据报应当发往哪个客户端(总共两个Nde,除了自身,另一种就是发送地址)。找到发送地址后,将其与数据报作为参数创立Server对象(实现了une接口),启动Servr的线程将数据报
5、发送到另一种客服端,一次信息传递结束。接着可以进行第二次信息传送(无论从哪个客户端发信息都可以)。注:由于在同一台机器上的I地址相似,光靠ades来辨别不同客户端是不现实的,因此还需要加上端标语。因此,在同一台机器上,clen1和client的代码之间的区别就只是用来接受和发送数据包的agramket的端标语不同。若是服务端在不同机器上,则端标语也可以相似。此外,客服端在接受信息时,也许受到电脑防火墙的制止,要注意一下(在这里我找了好久的bg。)。服务端一方面启动Myerie,执行死循环,在循环中为每一种发送数据报的客服端分派一种工作线程,来将信息发给相应的客户端。代码如下:工作线程由类Ser
6、ve提供:从主线程中得到接受端的addrss和pot,以及需要发送的信息,在rn措施中,将信息发送给接受端。 客户端界面如下:最下面的文本框用来输入想要发送的信息,然后点击d,就会发送到另一种客户端上,在RecivedMessage下面是用来显示聊天记录的,自己发送的信息显示在聊天记录中会加上“I: ”来辨别,对方发送的则会加上“him: ”。Cler按钮是用来清空聊天记录的主线程负责信息的发送,此外启动工作线程进行数据的接受,即un措施,rn措施中是一种死循环,始终在等待接受信息,接受到信息后,在聊天记录中显示,并开始下一次循环。un措施代码如下运营成果:(2). 编写Ja应用程序,根据作业
7、“单机版中英文单词测试程序”的规定,将之改为网络版。客户端和服务器端建立套接字连接后,服务器端向客户端发送一种英文单词和四个中文解释(分别为A,B,C,D),假设只有一种解释是对的的;客户端将答案发送给服务器端;服务器端判断客户端的答案与否对的,并将已经给出的题目的数量和答对的数量返回给客户端,同步也把下一种英文单词和四个中文解释发送给客户端;如此循环10次结束单词测试。规定使用图形界面。词库应至少涉及0个英文单词和相应的对的解释和错误解释。在报告中附上程序截图、完整的运营成果和简要文字阐明。(分) 网络版的中英文单词测试程序分为两部分:服务端和客户端。 服务端采用多线程解决套接字连接,可觉得
8、多种客户端同步提供服务(但是在本实验中,如果想要启动多种客户端,则需要修改端标语)。服务端有两个类:Servie和Hler。 MSrvie 重要用来为每一种客户端分派一种工作线程(由Server提供)。服务器的主线程(ySrvice的ain措施)负责接受客户的连接,每收到一种连接祈求,就创立一种线程负责与客户通信。 Servr 重要实现Runnable接口,在run措施中,有一种执行10次的循环,每次循环,负责向客户端发送一种英文单词和四个中文解释(即个Strig),然后接受客户端发回来的选项(Strin),判断成果与否对的,向客户端发送对的数和做题总数。最后线程暂停秒钟。 客户端界面如下:
9、界面实现与必实验5类似。整个界面中只有输入选项的文本框实现了监听接口,用于将答案发送至服务端进行判断。 客户端的rn措施是用来更新界面的,当输入上一题的答案后,积极更新到下一题,不需要手动操作。代码如下: Mysevie类的重要执行代码: 当接受到客户端祈求时,启动Hanlr的线程。un措施如下:getFor用来生成4个选项,并返回对的选项是第几种。Hande的un措施。具体代码见附件。运营成果:先启动服务器端,再启动客户端。+其她(例如感想、建议等等)。深圳大学学生实验报告用纸指引教师批阅意见:成绩评估:指引教师签字: 月 日备注:注:、报告内的项目或内容设立,可根据实际状况加以调节和补充。 2、教师批改学生实验报告时间应在学生提交实验报告时间后0日内。