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. Linux(centos7)上安装最新版R3.4.1

    说来惭愧,居然没有在Linux安装R的经验,因为一直很少用R,用也是在win平台. 下载路径:https://cran.rstudio.com/src/base/R-3/ 强烈建议不要安装最新的R,除 ...

  2. String的intern()方法和java关键字、保留字

    String s1 = new StringBuilder("hel").append("lo").toString(); //hello System.out ...

  3. English trip M1 - PC1 Are you a Model? 你是模特吗? Teacher:Taylor

    In this lesson you will learn to talk about jobs. 课上内容(Lesson) What's your partner name? Her name is ...

  4. p1465 Preface Numbering

    用这个函数转成罗马数字统计就行了. #include <iostream> #include <cstdio> #include <cmath> #include ...

  5. 关于Androidstudio无法获取到所有的SDk版本,需要挂国内镜像的问题

    由于墙的原因 我们在使用AndroidStudio的时候SDK Manager无法获取到所有的版本 需要我们设置下使用国内的镜像 ****首先打开Android SDK Manager  然后按照如图 ...

  6. Docker 只要一小时,零基础入门Docker(转)

    转自:https://zhuanlan.zhihu.com/p/23599229 推荐:https://hijiangtao.github.io/2018/04/17/Docker-in-Action ...

  7. cmd下可以启动java,输入javac提示 不“存在”

    方法:手动把JDK安装目录的bin目录配置到PATH环境变量里

  8. Luffy之前端项目部署搭建

    1. 搭建前端项目 1.1 创建项目目录 cd 项目目录 vue init webpack lufei 根据需要在生成项目时,我们选择对应的选项, 效果: 根据上面的提示,我们已经把vue项目构建好了 ...

  9. readline与readlines之间的简单区别

    首先来探望一下readline这位女同志: 偷窥一下user.txt内容: user password buqiuen 123456 xietingfeng 123456 一.readline例子: ...

  10. 如何在VMware系统中的ubuntu16.04中建立与win7系统的共享文件夹

    点击虚拟机设置一次得到如图所示 系统默认放在了 /mnt/hgfs文件夹 点击虚拟机安装vmware tools 解压vmware tools压缩包 运行sudo ./vmware-install.p ...