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.com与ping 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周学习总结的更多相关文章
- 201521123027 <java程序设计>第13周学习总结
1.本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2.书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.e ...
- 2018面向对象程序设计(Java)第13周学习指导及要求
2018面向对象程序设计(Java)第13周学习指导及要求 (2018.11.22-2018.11.25) 学习目标 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作机 ...
- 面向对象程序设计(JAVA) 第13周学习指导及要求
2019面向对象程序设计(Java)第13周学习指导及要求 (2019.11.19-2019.11.25) 学习目标 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结
20162329 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机 ...
- 20175221 2018-2019-2 《Java程序设计》第一周学习总结
20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...
- 20175317 《Java程序设计》第九周学习总结
20175317 <Java程序设计>第九周学习总结 学前准备 首先下载XAMPP,下载完成后打开: 将前两个选项打开 在IDEA中配置驱动mysql-connector-java-5.1 ...
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20175126《Java程序设计》第九周学习总结
# 20175126 2016-2017-2 <Java程序设计>第九周学习总结 ## 教材学习内容总结 - 本周学习方式主要为手动敲代码并理解内容学习. - 学习内容为教材第十一章,本章 ...
- 20175234 2018-2019-2 《Java程序设计》第九周学习总结
目录 20175234 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码托管 感想 学习进度条 参考资料 20175234 2 ...
随机推荐
- 洛谷P2759 奇怪的函数(log 二分)
题目描述 使得 x^xxx 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^xxx 达到 n 位数字的最小正整数 x 输入输出样例 输 ...
- 【例题收藏】◇例题·III◇ 木と整数 / Integers on a Tree
◇例题·III◇ 木と整数 / Integers on a Tree 只需要一个美妙的转换,这道题就会变得无比美妙…… 来源:+AtCoder 2148(ARC-063 E)+ ◆ 题目大意 给定一棵 ...
- lintcode_69_二叉树的层次遍历
二叉树的层次遍历 描述 笔记 数据 评测 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 您在真实的面试中是否遇到过这个题? Yes 哪家公司问你的这个题? LinkedIn Airb ...
- bootloader 关闭看门狗
#define pWTCON 0x53000000disable_watchdog: ldr r0, =pWTCON mov r1, #0x0 str r1, [r0]
- python--Matplotlib(二)
Matplotlib+pandas作图 一.对csv文件进行提取ruixi.csv 对上述表格进行提取并做图 #-*- coding:utf-8 -*- import matplotlib as mp ...
- Linux入门篇(五)——Shell(一)
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- C++继承权限
牢记两句话: 1.三种继承方式不影响子类对父类的访问权限,子类对父类的访问权限取决于父类的访问控制权. 2.三种继承方式是为了控制子类的调用方对父类的访问权限.比如private继承,对于子类的调用方 ...
- sigaction函数
sigaction函数是设置信号处理的接口.比signal函数更健壮 #include <signal.h> int sigaction(int signum, const struct ...
- 20145202 《Java程序设计》第四周学习总结
继承:打破了封装性 extends 1.提高了代码的复用性. 2.让类与类之间产生了关系,有了这个关系,才有了多态的特性. 3.必须是类与类之间有所属类关系才可以继承. 4.java只支持单继承不支持 ...
- .Net Mvc 4 Route路由
1.前言 在创建一个MVC项目后就可以,在App_Start文件下的RouteConfig.cs里面就可以定义我们的路由规则,其中已经有默认的路由规则了,routes.IgnoreRoute是让路由规 ...