1. 本周学习总结

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

  • 通过IP地址和端口号可以进行建立Socket对象,然后进行通信
  • 使用Socket的一般步骤:
    1. 建立Socket对象(与远程主机进行了连接)
    2. 从Socket对象上获取流
    3. 对流进行操作就相当于进行网络通信
  • Socket对象是资源,用完记得关闭
  • 服务器端首先要监听一个端口,ServerSocket不是Socket,但是可以通过accept方法监听端口产生Socket对象。
  • TCP与UDP的差别
    1. TCP:有连接,可靠性高,像打电话,通信前必须建立连接。
    2. UDP:无连接,发送简单,像发邮件,可靠性不高,可能丢失数据包
  • 网络常用命令
    1. ipconfig 查看网络配置信息,如ip地址
    2. ping 测试网络是否连通
    3. telnet 远程登陆
    4. ftp 登陆ftp
    5. Fport (xp下)查看计算机端口使用情况
  • URL是统一资源定位符,可以打开一个到达资源的流,组成(协议,主机名,文件名)

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

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

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

Answer:这次我想为我的购物车系统增加多个客户端可以同时连接同一个服务端查看购物车的操作。

  • 设计思路:在服务端定义一个ServerSocket监听在端口上 ,每接收到一个Socket就建立一个新的线程来处理它。在客户端定义好要连接的服务端IP地址和与服务端对应的监听端口号。建立连接后就可以从服务端读信息操作。

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

Answer:向服务端传递了用户的登录信息,向客户端传递了购物车货品。

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

Answer:TCP,常用Socket类。

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

Answer:

  • 服务端(定义一个ServerSocket在端口8000上监听 )

  • 运行截图


  • 简单说明:客户端与服务端建立连接后就可以往服务端写入登陆信息,服务端向客户端传送信息。

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

  • 客户端1(客户端2相同)

  • 核心代码:使用Socket socket = new Socket(host, port);建立连接。

3. 码云与PTA

3.1 统计本周完成的代码量

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

周次 总代码量 新增代码量 总文件数 新增文件数
1 374 374 5 5
2 889 515 15 10
3 1417 528 22 7
4 1838 421 27 5
6 2608 770 38 11
7 3270 662 48 10
8 4068 798 52 4
9 4543 475 60 8
10 4988 445 65 5
11 5421 433 72 7
12 6327 906 88 16
13 6737 410 96 7
14 7406 669 105 9

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

1. 网络基础

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

  • 第一张图我在虚拟机上ping的,后两张为我在Mac上ping的- .-随便看看

Answer: 由图中可以发现,访问接收的时长不一样,访问百度的耗时比较长,是和距离有关系。

1.2 telnet bbs.newsmth.net,上面这条命令连接的是远程主机的什么端口号?

Answer: 23,telnet的默认端口号为23

1.3 telnet cec.jmu.edu.cn 80,尝试回答:你从屏幕看到一些什么内容?返回的内容是不是cec.jmu.edu.cn的主页内容?尝试使用GET /index HTTP/1.0命令,会返回什么?详见实验任务书题目1。

Answer:屏幕是没有内容的。

  • 如图:

  • 使用命令后,返回了文本数据

1.5 编写网络程序必不可少的几个信息是什么?

Answer: Ip地址,端口号,协议以及域名。

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进一步观察返回结果。没有任何返回结果,为什么?怎么修改代码才能正常显示?选做:为什么会返回乱码?如何解决?

Answer:因为cec.jmu.edu.cn连接的是http,需要添加"GET / HTTP/1.0\n"

  • 这里没有产生乱码,由截图右下角可以看到就是使用UTF-8

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

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

Answer:本题截图在2.1

5. 论述题:网络程序与流

5.1 前面编写的程序用到了大量的流的相关知识。简述,编写网络程序时应当选择什么样的流?Java网络编程、流之间的关系。任选一场景描述,场景如:简单的文字聊天、文件传输、应用层协议服务器,如QQ、聊天室、网络游戏。

Answer:简单的文字聊天可以使用输入流和输出流字节流以及字符流。

6. 代码阅读

阅读ServerAndThread目录中的源代码

6.1 修改程序,在GUI界面中某个地方显示自己的学号,然后运行该程序(截图、出现学号)。简述这个程序的主要功能。

Answer:该程序实现了客户端和服务端的通信

6.2 画出源代码的结构图(各个类的依赖关系)。

201621123001 《Java程序设计》第13周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第13周学习总结

    1.本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2.书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.e ...

  2. 2018面向对象程序设计(Java)第13周学习指导及要求

    2018面向对象程序设计(Java)第13周学习指导及要求 (2018.11.22-2018.11.25)  学习目标 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作机 ...

  3. 面向对象程序设计(JAVA) 第13周学习指导及要求

    2019面向对象程序设计(Java)第13周学习指导及要求 (2019.11.19-2019.11.25)   学习目标 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作 ...

  4. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  5. 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结

    20162329 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机 ...

  6. 20175221 2018-2019-2 《Java程序设计》第一周学习总结

    20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...

  7. 20175317 《Java程序设计》第九周学习总结

    20175317 <Java程序设计>第九周学习总结 学前准备 首先下载XAMPP,下载完成后打开: 将前两个选项打开 在IDEA中配置驱动mysql-connector-java-5.1 ...

  8. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  9. 20175126《Java程序设计》第九周学习总结

    # 20175126 2016-2017-2 <Java程序设计>第九周学习总结 ## 教材学习内容总结 - 本周学习方式主要为手动敲代码并理解内容学习. - 学习内容为教材第十一章,本章 ...

  10. 20175234 2018-2019-2 《Java程序设计》第九周学习总结

    目录 20175234 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码托管 感想 学习进度条 参考资料 20175234 2 ...

随机推荐

  1. 使用VueCLI的User Interface Tool(GUI)创建app的图文讲解

    (英文原文) 需要安VueCLI3和nodejs. 在terminal输入vue可以看到命令列表: 其中vue ui [options] 就是用于开始和打开vue-cli ui的命令. 使用http: ...

  2. python记录_day04 列表 元组

    今日主要内容: 列表 和 元组 列表 一.列表介绍 列表是一种能存储大量数据的数据结构,是能装对象的对象.由方括号 [] 括起来,能放任意类型的数据,数据之间用逗号隔开 列表存储数据是有顺序的 二.增 ...

  3. https请求排错过程

    1. 看请求有没有到nginx 此时需要查看nginx的日志.一般每一个项目都会配置一个nginx站点,而一个站点都会又一个nginx配置文件,这个文件位于哪里呢?不出意外应该在:下面,如果找不到的话 ...

  4. 第二类Stirling数

    第二类斯特林数 第二类Stirling数:S2(p, k) 1.组合意义:第二类Stirling数计数的是把p个互异元素划分为k个非空集合的方法数 2.递推公式: S2(0, 0) = 1 S2(p, ...

  5. JS代码判断IE6,IE7,IE8,IE9

    做网页有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代码! 有一种代码: <script type="text/javasc ...

  6. js时间与时间戳互相转换

    var _time1 = Date.parse(new Date(‘2017-05-02 00:00:00’))/1000; //将设定的日期转换为时间戳 _time1 = getLocalTime( ...

  7. SQL Server 创建触发器(trigger)

    update 触发器: if(OBJECT_ID('trigger_compost_up') is not null) drop trigger trigger_compost_up go creat ...

  8. Oracle传输表空间介绍

    传输表空间通过拷贝数据文件的方式,实现可跨平台的数据迁移,效率远超expdp/impdp, exp/imp等工具.还可以应用跨平台&数据库版本迁移表数据.归档历史数据和实现表空间级时间点数据恢 ...

  9. 【LeetCode】跳跃游戏

    给定一组非负整数,初始时处于数组的第一位下标 0 的位置,数组的每个元素代表那个位置可以跳跃的最大长度.判断你是否能够到达数组的最后一位下标. e.g. A = [2, 3, 1, 1, 4],返回 ...

  10. JavaScript基础(四)

    十六.client.offset.scroll系列 1.client系列 代码如下: <!DOCTYPE html> <html> <head> <meta ...