20145104张家明 《Java程序设计》第10周学习总结

教材学习内容总结

网络编程

  • 网络编程就是两个或多个设备(程序)之间的数据交换。

  • 识别网络上的每个设备:①IP地址②域名(Domain Name)。一个IP地址可以对应多个域名,一个域名只能对应一个IP地址。

  • DNS服务器(域名解析):在实际传输数据以前需要将域名转换为IP地址。

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

  • C/S结构:网络编程的结构被称作客户端/服务器结构,也叫做Client/Server结构。

  • B/S结构:使用浏览器作为客户端的结构被称作浏览器/服务器结构,也叫做Browser/Server结构。B/S结构其实也就是一种特殊的C/S结构。

  • P2P程序:P2P程序中既包含客户端程序,也包含服务器端程序,是一种特殊的程序。

  • 协议(Protocol):在实际进行数据交换时,为了让接收端理解该数据,计算机比较笨,什么都不懂的,那么就需要规定该数据的格式,这个数据的格式就是协议。那么如何来编写协议格式呢?答案是随意。只要按照这种协议格式能够生成唯一的编码,按照该编码可以唯一的解析出发送数据的内容即可。也正因为各个网络程序之间协议格式的不同,所以才导致了客户端程序都是专用的结构。

  • 在现有的网络中,网络通讯的方式主要有两种: ①TCP(传输控制协议)方式 ②UDP(用户数据报协议)方式

  • 客户端的编程主要由三个步骤实现:

1、建立网络连接:在建立网络连接时需要指定连接到的服务器的IP地址和端口号。(出现重复)

2、交换数据:交换数据严格按照请求响应模型进行。

3、关闭网络连接。

  • 服务器端的编程是由四个步骤实现,依次是:

1、监听端口:这个端口就是服务器端开放给客户端的端口,服务器端程序运行的本地计算机的IP地址就是服务器
端程序的IP地址。

2、 获得连接:服务器端和客户端也通过该连接进行数据交换。一般获得连接时,需要开启专门的线程处理该连
接,每个连接都由独立的线程实现。

3、 交换数据。

4、 关闭连接。
InetAddress类:该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。

  • TCP方式的网络编程实现时,以java.net.Socket类代表客户端连接,以java.net.ServerSocket类代表服务器端连接。由于高度的封装,程序员实际编程时,只需要指定IP地址和端口号码就可以建立连接了。一方面简化了Java语言网络编程的难度,另外也使得Java语言进行网络底层系统编程很困难,具体点说,Java语言无法实现底层的网络嗅探以及获得IP包结构等信息。

  • 实现服务器端监听的代码为:

ServerSocket ss = new ServerSocket(10000);
实现UDP方式的编程,包含客户端网络编程和服务器端网络编程,主要由两个类实现,分别是:

1、DatagramSocket:实现“网络连接”,包括客户端网络连接和服务器端网络连接。DatagramSocket实现的
就是发送数据时的发射器,以及接收数据时的监听器的角色。类比于TCP中的网络连接,该类既可以用于实现客户
端连接,也可以用于实现服务器端连接。

2、DatagramPacket:实现对于网络中传输的数据封装,该类的对象代表网络中交换的数据。在UDP方式的网络
编程中,无论是需要发送的数据还是需要接收的数据,都必须被处理成DatagramPacket类型的对象,该对象中
包含发送到的地址、发送到的端口号以及发送的内容等。和TCP方式的网络传输相比,IO编程在UDP方式的网络编
程中变得不是必须的内容,结构也要比TCP方式的网络编程简单一些。

代码托管

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第六周 894/1926 2/7 30/175 这周进行了第一次的实验
第七周 254/2180 2/9 21/196 第二次java实验
第八周 260/2440 2/11 20/216 第三次java实验
第九周 380/2820 2/13 25/241 第四次java实验
第十周 80/2900 2/15 23/264 第五次java实验

参考资料

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

  1. 20145302张薇 《Java程序设计》第二周学习总结

    20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...

  2. 20145302张薇《Java程序设计》第九周学习总结

    20145302 <Java程序设计>第九周学习总结 教材学习内容总结 第十六周 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Jav ...

  3. 20145104张家明 《Java程序设计》第3周学习总结

    20145104张家明 <Java程序设计>第4周学习总结 教材学习内容总结 第四章 认识对象 4.1 类与对象 4.1.1 定义类 类定义时使用class关键词,建立实例要用new关键词 ...

  4. 20145104张家明 《Java程序设计》第5周学习总结

    20145104张家明 <Java程序设计>第5周学习总结 教材学习内容总结 第八章(概括为一下内容) 1.如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执 ...

  5. 20145104张家明 《Java程序设计》第6周学习总结

    20145104张家明 <Java程序设计>第6周学习总结 教材学习内容总结 第10章与11章总结 标准输入输出 System.in: 标准输入,默认关联到键盘(终端输入) System. ...

  6. 20145104张家明 《Java程序设计》第四次实验设计

    20145104张家明 <Java程序设计>第四次实验设计 这第四次实验报告 我们开始着手安卓了 在电脑上安装了安卓虚拟机

  7. 20145104张家明 《Java程序设计》第9周学习总结

    20145104张家明 <Java程序设计>第9周学习总结 教材学习内容总结 第16章 -撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. -JDBC目的:让Java ...

  8. 20145104张家明 《Java程序设计》第8周学习总结

    20145104张家明 <Java程序设计>第8周学习总结 教材学习内容总结 第15章 -java.util.logging包提供了日志功能相关类与接口,不必额外配置日志组件,就可以在标准 ...

  9. 20145104张家明 《Java程序设计》第7周学习总结

    20145104张家明 <Java程序设计>第7周学习总结 教材学习内容总结 第13章 简单认识时间和日期 -时间的度量:GMT.UT.TAI.UTC.Unix.epoch. -UTC:保 ...

随机推荐

  1. FMOD变声如何捕获并存储处理音效之后的数据

    类似AVAudioEngine的功能,一个Engine可以将N个connect连接(串联和并联)在一起,这样来实现多个输入源,多层处理效果的混合输出.实现这个所需功能也是通过这样的方案来实现的.也就是 ...

  2. iOS判断UIView是否显示在屏幕上

    @interface - (BOOL)isDisplayedInScreen; @end @implementation UIView(UIScreenDisplaying) //判断View是否显示 ...

  3. arcgis api for JavaScript _加载三维图层(scene layer)

    arcgis api for JavaScript _加载三维图层(scene layer) arcgis api for JavaScript  4.x 版本增加对三维的支持. 关于三维图层(sce ...

  4. sql两列相除,保留n位小数

    ), ) from tablename 以上代码意思两列相处,然后保留4位小数.

  5. 2015 湘潭大学程序设计比赛(Internet)--D题-最小的数

    最小的数 Accepted : 47   Submit : 276 Time Limit : 1000 MS   Memory Limit : 65536 KB 题目描述 给你一个n位数,每次操作可以 ...

  6. Python开发【笔记】:关于子线程(子进程)与主线程(主进程)的关联

    前言: 主要分析下面的问题: 主线程启线程  主线程执行完毕,会关闭子线程吗? 子线程启线程  主线程执行完毕,会结束吗? 主进程启动进程,主进程执行完毕,会怎样? 子进程启动进程,进程执行完毕,又会 ...

  7. vue 中 命名视图的用法

    今天主要记录  vue中命名视图的用法 先奉上官网网址:https://router.vuejs.org/zh/guide/essentials/named-views.html 一般情况下,一个页面 ...

  8. 牛客练习赛16D K进制 数论(待理解QAQ)

    正解:数论 解题报告: 行吧那就让我一点点推出来趴QAQ

  9. ARP报文

    硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1: 协议类型:指明了发送方提供的高层协议类型,IP为0x0800(16进制): 硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这 ...

  10. 下厨房6月26日数据丢失事故总结 MYSQL主分区被rm 命令误删除

    下厨房6月26日数据丢失事故总结 MYSQL主分区被rm 命令误删除 http://tech.xiachufang.com/?p=18 在6月26日凌晨12点左右,我们在做线上数据库的备库时,误将线上 ...