201621123034 《Java程序设计》第13周学习总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了201621123034 《Java程序设计》第13周学习总结相关的知识,希望对你有一定的参考价值。

作业13-网络


1. 本周学习总结

以你喜欢的方式(思维导图、OneNote或其他)归纳总结多网络相关内容。
技术分享图片


2. 为你的系统增加网络功能(购物车、图书馆管理、斗地主等)-分组完成

为了让你的系统可以被多个用户通过网络同时使用,需要为你的系统增加网络功能。

2.1 简述你想为你的系统增加什么网络功能?设计思路是什么?

答:
把图书馆管理系统设置为服务器端,设置它的端口号为8000,之后通过网络连接把它的菜单内容等都返回给连接的客户端。
设计思路:需要新建一个net类,在net类中实现多线程,实现runnable接口,在run方法中实现菜单等操作。这样main函数就可以不断创建线程,接口多个新的客户端。

2.2 系统通过网络传递了什么信息?信息的格式是什么?

答:服务器端通过网络将用户信息传递给客户端,客户向服务器传递登录和操作信息。信息使用了字节流InputStream和OutputStream存储,通过Scanner和PrintWriter进行传输。

2.3 你的网络模块使用了TCP还是UDP技术?模块中的常用类是什么?

答:TCP。常用类是SeverSocket类和Socket类。

2.4 截图网络通讯部分的源代码与运行截图,并进行简单说明。

注意:如果不会编写客户端,可以使用telnet或者**网络调试助手*做客户端。
答:
源代码:
技术分享图片
技术分享图片
技术分享图片
技术分享图片

运行结果:
技术分享图片
技术分享图片
技术分享图片

2.5 选做:使用自己编写的客户端访问系统。简述里面的核心代码。

答:代码见2.4。核心代码就是编写一个客户端,客户端能够连接上服务器端(图书馆管理系统)的IP和端口号,对内容进行读取和输出,创建多个客户端就可以实现多线程。

2.6 选做:系统中有出现多线程的冲突或者同步问题吗?


3. 码云与PTA

3.1 统计本周完成的代码量

需要将每周的代码统计情况融合到一张表中。

技术分享图片

周次 总代码量 新增代码量 总文件数 新增文件数
2 141 141 6 6
3 445 380 10 3
5 871 426 16 6
6 1496 623 26 10
7 2570 1076 40 14
8 2674 104 46 6
9 2997 323 53 7
10 3313 316 58 5
11 3724 411 68 10
12 4249 525 78 10
13 4540 291 87 9
14 5161 621 91 4

选做:4. 网络学习指导(以下作业内容均为选做)

1. 网络基础

1.1 比较ping www.baidu.comping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同?

答:
技术分享图片

返回的各种值不同,因为他们的网址不同,在对它们进行访问时通过的路径是不同的。

  • 参考:实验任务书-题目1

2. 编写TCP客户端程序

2.1 参照SocketTest.java编写一个简单的连接远程服务器小程序Client.java,可以接收并显示服务器发送的信息。启动时需要首先在控制台指定远程主机IP与端口号。(截图,出现自己学号)。

答:
技术分享图片
技术分享图片

2.2 将程序中的网址改成bbs.newsmth.net,端口号改为23,再次观察返回结果?尝试执行telnet bbs.newsmth.net 23,对比返回结果。

答:
技术分享图片

2.3 将程序中的网址改成cec.jmu.edu.cn,端口号改为80进一步观察返回结果。没有任何返回结果,为什么?怎么修改代码才能正常显示?选做:为什么会返回乱码?如何解决?

答:
技术分享图片

2.4 启动网络调试助手,将其设置为TCP Server,并启动,如下图所示(作业中不要出现下图)

尝试使用Client.java连接该TCP Server,使用该服务器向Client发送信息。(截图关键代码与运行结果)
答:
技术分享图片

3. ServerSocket与TCP服务器

3.1 简易单线程MenuServer,题目3.1-3.4。(关键代码及运行截图,包含学号)可以使用网络调试助手,将其设置为TCP Client(IP与端口填你的MenuServer的IP与端口),连接你的MenuServer。其中的文件搜索功能为选做。

答:
技术分享图片
技术分享图片

3.2 多线程MenuServer(截取关键代码证明你这个是多线程服务器,请使用多个telnet连接测试)。

答:
技术分享图片

  • 可以控制服务器的启动停止、查看客户端链接的基本信息(IP、端口、链接时间)
  • 拓展:在服务器端断开某个客户端的链接、查看客户端发送的给服务器端的日志记录
  • 参考:实验任务书-题目3
  • 参考:EchoServer.java,ThreadedEchoServer.java (多线程服务器)






















以上是关于201621123034 《Java程序设计》第13周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

201621123034 《Java程序设计》第14周学习总结

201621123034 《Java程序设计》第13周学习总结

20145320 《Java程序设计》第1周学习总结

20145118 《Java程序设计》第1周学习总结

201621123021 《Java程序设计》第1周学习总结

20145334赵文豪 《Java程序设计》第1周学习总结