JavaShuo
栏目
标签
201521123013 《Java程序设计》第13周学习总结
时间 2019-12-11
标签
Java程序设计
13周
学习
总结
栏目
Java
繁體版
原文
原文链接
1. 本周学习总结
2. 书面做业
Q1. 网络基础
1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不一样?为何会有这样的不一样?
ping值不一样(time列),cec.jmu.edu.cn的ping值比较小。
ping值:从本地电脑发一个数据包,传输到服务器,而后服务器返回本地电脑的总时间。由于cec.jmu.edu.cn的服务器离本机距离比较近,因此数据请求发送过去,再回来的时间就比较小,也就是ping值比较小。
1.2 telnet bbs.newsmth.net,上面这条命令链接的是远程主机的什么端口号?
23端口
1.3 telnet cec.jmu.edu.cn 80,尝试回答:你从屏幕看到一些什么内容?返回的内容是否是cec.jmu.edu.cn的主页内容?尝试使用GET /index HTTP/1.0命令,会返回什么?详见实验任务书题目1。
没有内容;返回的不是cec.jmu.edu.cn主页内容;使用GET /index HTTP/1.0命令,返回的是cec.jmu.edu.cn的主页源代码
1.4 启动ConnectionWatcher, 而后启动若干个能够联网的程序(如QQ, telnet,浏览器等),查看本机上有什么程序联网,使用了什么端口?QQ占用了什么端口和那些远程IP进行交互,这些IP分布地在那里?使用了什么协议进行通讯?
酷狗、IE、QQ、360,使用了80端口、49329端口等等。使用了80端口跟远程IP进行交互,使用了TCP协议。
1.5 编写网络程序必不可少的几个信息是什么?
套接字(Socket)、输入输出流(incoming.getInputStream(),getOutputStream())、TCP、UDP协议
Q2. 编写TCP客户端程序
2.1 参照SocketTest.java编写一个简单的链接远程服务器小程序Client.java,能够接收并显示服务器发送的信息。启动时须要首先在控制台指定远程主机IP与端口号。(截图,出现本身学号)
2.2 将程序中的网址改为bbs.newsmth.net,端口号改成23,再次观察返回结果?尝试执行telnet bbs.newsmth.net 23,对比返回结果。
由于eclipse编码问题,有些字符没法正常显示。
2.3 将程序中的网址改为cec.jmu.edu.cn,端口号改成80进一步观察返回结果。没有任何返回结果,为何?怎么操做
由于客户端跟服务器(cec.jmu.edu.cn)是经过http协议进行交互的,因此须要使用GET命令请求消息。若是使用Socket的话,必须本身发送http请求,
out.println("GET / HTTP/1.0\n")
也可使用URL类,由于URL类能够直接跟Web服务器进行交互(里面封装了使用http协议通讯的代码),使用比较方便。
2.4 启动网络调试助手,将其设置为TCP Server,并启动,尝试使用Client.java链接该TCP Server,使用该服务器向Client发送信息。(截图)
2.5 回答:如今的Client.java只能接收信息,可否改造Client.java使其能够与服务器进行交互(服务器能够发送信息给Client,Client也可发送信息给服务器),写出大概思路便可。
Q3. ServerSocket与TCP服务器
3.1 简易单线程MenuServer,题目3.1-3.4。(关键代码及运行截图,包含学号)可使用网络调试助手,将其设置为TCP Client(IP与端口填你的MenuServer的IP与端口),链接你的MenuServer。其中的文件搜索功能为选作。
3.2 多线程MenuServer(截图证实你这个是多线程服务器,使用telnet链接)。
3.3 选作:图形界面的MenuServer
Q4. UDP服务器
4.1 改造3.1或3.2,将其改形成基于UDP的MenuServer。(运行界面代码截图,包含学号)。可使用网络调试助手,将其设置为UDP,要填本机IP与端口也要填远程服务器的IP与端口。
•参考:UDPServer.java
java
Q5. 论述题:网络程序与流
5.1 前面编写的程序用到了大量的流的相关知识。简述,编写网络程序时应当选择什么样的流?Java网络编程、流之间的关系。场景如:简单的文字聊天、文件传输、应用层协议服务器,如QQ、聊天室、网络游戏。
编写网络程序时选择输入输出流的字节流,而后用字符流包装。客户端和服务器进行通讯,实际上就是对Socket对象中得到的流进行操做。对程序来说,输出到屏幕,打印机,文件等都叫输出,而从文件读取,从网络读取,接收到都算输入。
Q6. 代码阅读
阅读ServerAndThread目录中的源代码
正则表达式
6.1 修改程序,在GUI界面中某个地方显示本身的学号,而后运行该程序(截图、出现学号)。简述这个程序的主要功能。
功能:一台服务与多台客户端之间的通讯。
6.2 画出源代码的结构图(各个类的依赖关系)。并简要说明各个类的功能。
ClientChart:客户端界面,ClientReadThread:读取客户端消息,ClientListener:监听器,监听客户端收到的消息。
服务端与客户端相似。
6.3 简述这个程序有什么不足之处及改进方法.
不足:客户端发消息时,服务端知道是哪一个线程发的消息,可是客户端之间显示只显示“客户端说:”,不能区分各客户端。
选作:7. 网络爬虫
使用Socket、URL、正则表达式、流等编写一个网络爬虫能够将cec.jmu.edu.cn及其所包含连接上的全部网址的图片都下载下来,抓取深到不超过5。
选作:8. 简易搜索引擎(进阶)
8.1 写出设计思路便可。该搜索引擎包含几部分?里面核心的实现思路?若是能用框架图、流程图画出架构
8.2 以计算机学院网站为例,进行测试。好比,输入ACM后搜索,能够将包含ACM的的网页抽取出来。(可做为课程设计题目)
3. 码云
码云代码提交记录
相关文章
1.
201521123013 《Java程序设计》第14周学习总结
2.
201521123013 《Java程序设计》第6周学习总结
3.
201621123010《Java程序设计》第13周学习总结
4.
201621123050 《Java程序设计》第13周学习总结
5.
201621123031 《Java程序设计》第13周学习总结
6.
201521123014《Java程序设计》第13周学习总结
7.
201521123084 《Java程序设计》第13周学习总结
8.
201521123091 《Java程序设计》第13周学习总结
9.
201621123057 《Java程序设计》第13周学习总结
10.
201521123074 《Java程序设计》第13周学习总结
更多相关文章...
•
C# 程序结构
-
C#教程
•
第一个MyBatis程序
-
MyBatis教程
•
算法总结-归并排序
•
使用Rxjava计算圆周率
相关标签/搜索
第九周学习总结
Java程序设计
Java 程序设计
学习总结
学习、总结
程序设计
设计程序
Java程序设计教程
Docker学习总结
软件设计
Java
网站建设指南
MyBatis教程
PHP教程
学习路线
设计模式
java
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
深度学习硬件架构简述
2.
重温矩阵(V) 主成份分析
3.
国庆佳节第四天,谈谈我月收入增加 4K 的故事
4.
一起学nRF51xx 23 - s130蓝牙API介绍
5.
2018最为紧缺的十大岗位,技术岗占80%
6.
第一次hibernate
7.
SSM项目后期添加数据权限设计
8.
人机交互期末复习
9.
现在无法开始异步操作。异步操作只能在异步处理程序或模块中开始,或在页生存期中的特定事件过程中开始...
10.
微信小程序开发常用元素总结1-1
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
201521123013 《Java程序设计》第14周学习总结
2.
201521123013 《Java程序设计》第6周学习总结
3.
201621123010《Java程序设计》第13周学习总结
4.
201621123050 《Java程序设计》第13周学习总结
5.
201621123031 《Java程序设计》第13周学习总结
6.
201521123014《Java程序设计》第13周学习总结
7.
201521123084 《Java程序设计》第13周学习总结
8.
201521123091 《Java程序设计》第13周学习总结
9.
201621123057 《Java程序设计》第13周学习总结
10.
201521123074 《Java程序设计》第13周学习总结
>>更多相关文章<<