精品深圳大学java程序设计网络编程应用Word文件下载.docx

上传人:b****1 文档编号:475215 上传时间:2023-04-29 格式:DOCX 页数:10 大小:407.11KB
下载 相关 举报
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第1页
第1页 / 共10页
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第2页
第2页 / 共10页
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第3页
第3页 / 共10页
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第4页
第4页 / 共10页
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第5页
第5页 / 共10页
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第6页
第6页 / 共10页
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第7页
第7页 / 共10页
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第8页
第8页 / 共10页
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第9页
第9页 / 共10页
精品深圳大学java程序设计网络编程应用Word文件下载.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

精品深圳大学java程序设计网络编程应用Word文件下载.docx

《精品深圳大学java程序设计网络编程应用Word文件下载.docx》由会员分享,可在线阅读,更多相关《精品深圳大学java程序设计网络编程应用Word文件下载.docx(10页珍藏版)》请在冰点文库上搜索。

精品深圳大学java程序设计网络编程应用Word文件下载.docx

专业:

指导教师:

尹剑飞

报告人:

黄钢学号:

2016150170班级:

计软4班

实验时间:

2017年12月19日(周一)-2017年12月29日(周四)

实验报告提交时间:

2017年12月28日星期四

教务部制

实验目的与要求:

实验目的:

掌握网络通信协议及相关程序设计。

实验要求:

(1).利用数据报通信方式试编写一程序,该程序生成两个客户端,一个服务器端,两个客户端可以相互进行简短的文字交流。

在报告中附上程序截图、完整的运行结果和简要文字说明。

(50分)

(2).编写Java应用程序,根据作业“单机版中英文单词测试程序”的要求,将之改为网络版。

客户端和服务器端建立套接字连接后,服务器端向客户端发送一个英文单词和四个中文解释(分别为A,B,C,D),假设只有一个解释是正确的;

客户端将答案发送给服务器端;

服务器端判断客户端的答案是否正确,并将已经给出的题目的数量和答对的数量返回给客户端,同时也把下一个英文单词和四个中文解释发送给客户端;

如此循环10次结束单词测试。

要求使用图形界面。

词库应至少包含10个英文单词和相应的正确解释和错误解释。

说明:

(1)本次实验课作业满分为100分,占总成绩的比例(待定)。

(2)本次实验课作业截至时间2017年12月29日(周四)23:

59。

(3)报告正文:

请在指定位置填写,本次实验需要单独提交源程序文件。

(4)个人信息:

WORD文件名中的“姓名”、“学号”,请改为你的姓名和学号;

实验报告的首页,请准确填写“学院”、“专业”、“报告人”、“学号”、“班级”、“实验报告提交时间”等信息。

(5)提交方式:

截至时间前,请在MOOC平台中提交;

截至时间后一周内提交(即延迟提交),请发邮件到yjf@,并在邮件中注明课程名称、作业名称、姓名、学号等信息,我收到后会及时回复。

(6)发现抄袭(包括复制&

粘贴整句话、整张图),该次作业记零分。

(7)延迟提交(即2017年12月29日23:

59之后),不得分。

(8)期末考试阶段补交无效。

(1).利用数据报通信方式试编写一程序,该程序生成两个客户端,一个服务器端,两个客户端可以相互进行简短的文字交流。

首先在服务器端建立两个Node对象(用来标识不同客户端),即client1和client2的address和port。

然后在主线程中启动死循环,在每次循环中开启一个DatagramSocket对象来接收数据包,当接收到数据包后,解析出它是由哪个客户端发过来的,然后在最开始建立的两个Node对象中找到该数据报应该发往哪个客户端(总共两个Node,除了本身,另一个就是发送地址)。

找到发送地址后,将其与数据报作为参数创建Server对象(实现了Runnable接口),开启Server的线程将数据报发送到另一个客服端,一次信息传递结束。

接着可以进行第二次信息传送(无论从哪个客户端发信息都可以)。

注:

由于在同一台机器上的IP地址相同,光靠address来区分不同客户端是不现实的,所以还需要加上端口号。

因此,在同一台机器上,client1和client2的代码之间的区别就只是用来接收和发送数据包的DatagramSocket的端口号不同。

若是服务端在不同机器上,则端口号也可以相同。

此外,客服端在接收信息时,可能受到电脑防火墙的阻止,要注意一下(在这里我找了好久的bug。

)。

服务端首先开启MyService,执行死循环,在循环中为每一个发送数据报的客服端分配一个工作线程,来将信息发给相应的客户端。

代码如下:

工作线程由类Server提供:

从主线程中得到接收端的address和port,以及需要发送的信息,在run方法中,将信息发送给接收端。

客户端界面如下:

最下面的文本框用来输入想要发送的信息,然后点击Send,就会发送到另一个客户端上,在ReceivedMessage下面是用来显示聊天记录的,自己发送的信息显示在聊天记录中会加上“I:

”来区分,对方发送的则会加上“him:

”。

Clear按钮是用来清空聊天记录的

主线程负责信息的发送,另外开启工作线程进行数据的接收,即run方法,run方法中是一个死循环,一直在等待接收信息,接收到信息后,在聊天记录中显示,并开始下一次循环。

Run方法代码如下

运行结果:

(2).编写Java应用程序,根据作业“单机版中英文单词测试程序”的要求,将之改为网络版。

网络版的中英文单词测试程序分为两部分:

服务端和客户端。

服务端采取多线程处理套接字连接,可以为多个客户端同时提供服务(但是在本实验中,如果想要启动多个客户端,则需要修改端口号)。

服务端有两个类:

MyService和Handler。

MyService主要用来为每一个客户端分配一个工作线程(由Server提供)。

服务器的主线程(MyService的main方法)负责接收客户的连接,每收到一个连接请求,就创建一个线程负责与客户通信。

Server主要实现Runnable接口,在run方法中,有一个执行10次的循环,每次循环,负责向客户端发送一个英文单词和四个中文解释(即5个String),然后接收客户端发回来的选项(String),判断结果是否正确,向客户端发送正确数和做题总数。

最后线程暂停3秒钟。

界面实现与必实验5类似。

整个界面中只有输入选项的文本框实现了监听接口,用于将答案发送至服务端进行判断。

客户端的run方法是用来更新界面的,当输入上一题的答案后,主动更新到下一题,不需要手动操作。

Myservice类的主要执行代码:

当接收到客户端请求时,开启Handler的线程。

run方法如下:

getFour用来生成4个选项,并返回正确选项是第几个。

Handler的run方法。

详细代码见附件。

先启动服务器端,再启动客户端。

++++++++++++++++++++++++++++++++++++++++++++++++++++++

其他(例如感想、建议等等)。

深圳大学学生实验报告用纸

指导教师批阅意见:

成绩评定:

指导教师签字:

2017年月日

备注:

1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2