20145105 《Java程序设计》第10周学习总结

教材学习内容总结

JAVA网络编程

一、网络概述

(一)计算机网络概述

  • 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输。

  • IP地址:,网络中的每个设备都会有的一个唯一的数字标识,方便识别网络上的每个设备。

  • 域名:比IP地址更方便记忆,一个IP地址可以对应多个域名,一个域名只能对应一个IP地址。

  • DNS服务器:将域名转换为IP地址

  • 端口:端口的号码必须位于0-65535之间,每个端口唯一的对应一个网络程序,一个网络程序可以使用多个端口。

  • IP地址——端口:相当于总机与分机的关系,在进行网络通讯交换时,通过IP地址查找到该台计算机,然后通过端口标识这台计算机上的一个唯一的程序。

(二)网络编程概述

  • 客户端:第一次主动发起通讯的程序

  • 服务器端:在第一次通讯中等待连接的程序

  • C/S结构(客户端/服务器结构):开发时需要分别开发客户端和服务器端
    • 优势:表现力丰富,
    • 缺陷:通用性差,维护的压力比较大
  • B/S结构(浏览器/服务器结构):在开发时只需要开发服务器端即可
    • 优势:开发的压力比较小,不需要维护客户端
    • 缺陷:浏览器的限制比较大,表现力不强,无法进行系统级操作等
  • 协议:网络中传输的数据格式

(三)网络通讯方式

  • TCP(传输控制协议)方式:

    • 类似打电话
    • 需要建立专门的虚拟连接,然后进行可靠的数据传输
    • 如果数据发送失败,则客户端会自动重发该数据
    • 用于传输重要数据
    • 速度稍慢
  • UDP(用户数据报协议)方式:
    • 类似发短信
    • 不需要建立专门的虚拟连接,传输也不是很可靠
    • 如果发送失败则客户端无法获得
    • 用于传输大量的非核心数据

二、网络编程技术

(一)网络编程步骤

  1. 客户端的编程:

    • 建立网络连接

      • 客户端网络编程的第一步都是建立网络连接。在建立网络连接时需要指定连接到的服务器的IP地址和端口号,建立完成以后,会形成一条虚拟的连接,后续的操作就可以通过该连接实现数据交换了。
    • 交换数据(可多次)

      • 连接建立以后,就可以通过这个连接交换数据了。交换数据严格按照请求响应模型进行,由客户端发送一个请求数据到服务器,服务器反馈一个响应数据给客户端,如果客户端不发送请求则服务器端就不响应。
    • 关闭网络连接

      • 在数据交换完成以后,关闭网络连接,释放程序占用的端口、内存等系统资源,结束网络编程。
  2. 服务器的编程:
    • 监听端口

      • 服务器端属于被动等待连接,所以服务器端启动以后,不需要发起连接,而只需要监听本地计算机的某个固定端口即可。

      • 这个端口就是服务器端开放给客户端的端口,服务器端程序运行的本地计算机的IP地址就是服务器端程序的IP地址。
    • 获得连接
      • 当客户端连接到服务器端时,服务器端就可以获得一个连接,这个连接包含客户端的信息,例如客户端IP地址等等,服务器端和客户端也通过该连接进行数据交换。

      • 一般在服务器端编程中,当获得连接时,需要开启专门的线程处理该连接,每个连接都由独立的线程实现。
    • 交换数据(可多次)
      • 服务器端通过获得的连接进行数据交换。服务器端的数据交换步骤是首先接收客户端发送过来的数据,然后进行逻辑处理,再把处理以后的结果数据发送给客户端。简单来说,就是先接收再发送,这个和客户端的数据交换数序不同。
    • 关闭连接

代码实践见实验博客部分

教材学习中的问题和解决过程

  1. 对于IP和端口仅仅有个概念,实践时不知道从哪获取

    解决过程:询问同学后知道了,IP地址可以通过命令行:ipconfig查看,端口号是自己设定的

代码调试中的问题和解决过程(即实验问题)

  1. 在连接时客户端一方总是提示连接超时

    解决过程:在对比ipcongfig命令查看到的所有连接情况后,我们发现写错了IP地址,即连接的是WI-FI,但写的是本地连接的IP,修改后可以连接

  2. 调用RSA加密代码文件时,总是提示找不到指定文件

    解决过程:将调用方法中的文件名改为文件路径,强制读取该文件

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目 标 3000行 15篇 300小时
第一周 70/70 2/2 14/14
第二周 150/220 1/3 18/32
第三周 400/620 1/4 35/67
第四周 850/1470 1/5 30/97
第五周 560/2030 1/6 34/131
第六周 970/3000 2/8 39/170
第七周 430/3430 2/10 23/193
第八周 230/3660 2/12 27/220
第九周 267/3927 2/14 32/252
第十周 134/4061 2/16 26/278

参考资料

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

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

    2018面向对象程序设计(Java)第10周学习指导及要求(2018.11.1-2018.11.4)  学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接口的定 ...

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

    2019面向对象程序设计(Java)第10周学习指导及要求 (2019.11.1-2019.11.4)   学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ...

  3. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  4. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  5. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  6. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  7. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

  9. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  10. 20155304田宜楠 2006-2007-2 《Java程序设计》第二周学习总结

    20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...

随机推荐

  1. AjaxAnywhere的用法(FORWARD)

    AjaxAnywhere的用法   ajaxanywhere 总结:1,简介AjaxAnywhere被设计成能够把任何一套现存的JSP组件转换成AJAX感知组件而不需要复杂的JavaScript编码. ...

  2. Oracle字符串连接的方法

    Oracle数据库中,使用“||”进行字符串连接,下面就让我们一起了解一下Oracle数据库中字符串连接的方法,希望对您能有所帮助. 和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串 ...

  3. Hdu1010Tempter of the Bone 深搜+剪枝

    题意:输入x,y,t.以及一个x行y列的地图,起点‘S’终点‘D’地板‘.’墙壁‘X’:判断能否从S正好走t步到D. 题解:dfs,奇偶性减枝,剩余步数剪枝. ps:帮室友Debug的题:打错了两个字 ...

  4. bzip2 zip 压缩后体积比 0.8:1

    1. 对.bz2 后缀文件 跳过不处理 2.逐行同字段的json文件,压缩后大小为原文件的12.81% 测试文件近似认为为逐行json文本数据,没有进行多文件重复测试,没有统计时间: {"u ...

  5. Redis经验谈(转)

    原文:http://www.programmer.com.cn/14577/ 新浪作为全世界最大的Redis用户,在开发和运维方面有非常多的经验.本文作者来自新浪,希望能为业界提供一些亲身经历,让大家 ...

  6. 利用VS正则替换删除文本行首数据等字符

    删除以数字开头的加‘.’的行首序号 ^[0-9][0-9][.]

  7. PS快速制作下雪效果

    PS快速制作下雪效果 具体的制作步骤如下: 1.打开PS,打开素材,打开窗口-动作 2.创建新动作,参数如下图 3.回到图层,建立一个图层,填充黑色,如下图 4.滤镜-像素化-点状化,参数如下图 5. ...

  8. qt——QObject 与 QWidget 的区别

    QObject是QT中所有类的基类,QWidget是所有UI Widget类的基类,所以QObject是QWidget的基类,从QWidget继承也就表示继承了QObject的所有属性.

  9. sql server中的日期详解使用(convert)

    转自:http://blog.csdn.net/hehe520347/article/details/48496853 有个字段值例如2012-07-02 00:00:00.000 转化成 2012- ...

  10. CentOS工作内容(六)双网卡带宽绑定bind teaming

    CentOS工作内容(六)双网卡带宽绑定bind  teaming Teaming功能是什么功能http://zhidao.baidu.com/link?url=cpcwl9LH4FSHJBaTW-e ...