这周学习了Java网络编程和XML解析技术。计算机网络是处于不同地理位置的计算机系统通过通信设备和线路连接起来,以网络软件实现资源共享的系统。计算机网络出现的早起,由于软硬件厂商各自标准的不同,不同的网络产品之间互联时会遇到不兼容问题,针对此类问题,国际标准化组织ISO提出了一个OSI(开放互联系统)的参考模型,此模型采用分层结构,共分为七层。但此模型过于复杂庞大,在此基础上,技术人员开发出了TCP/IP分层模型,这也是目前因特网范围内运行的J唯一一种协议,该模型共有四个系一层:网络接口层、网络互联层、传输层、应用层。其中传输层负责数据传输,该层中包含两种协议:TCP代表传输控制协议(Transfer Control protocol),UDP代表用户报文协议(User Datagram Protocol)。二者的区别在于,TCP协议是一种一问一答的模式,两个程序之间的通讯是可靠的,而UDP协议则是一种非连接协议,数据发送方单方面将数据发出,但对方能否接收到数据则是不确定的,因此程序之间的通讯是不可靠的。在互联网通信中,客户端是通信的发起者,服务器被动的等待客户端发起通信,并对其做出响应,客户端与服务器互为对等端,但二者有着明显区别,客户端首先需要知道服务器的地址和端口号,反之则不然,服务器可以通过使用套接字API,从收到的客户端通信消息中获取客户端的相关信息。而一旦通信连接建立成功,二者之间就没有区别了。Socker(套接字)是一种抽象层,应用程序通过它来发送和接收数据,一个TCP/IP套接字由一个IP地址、一个端对端协议(TCP或UDP协议)以及一个端口号唯一确定。当使用TCP套接字编程时,有以下步骤:1.服务器初始化一个ServerSocket对象,指定通讯将要发生在哪个端口号。2.服务器调用ServerSocket的accep()方法,该方法是阻塞式的,会一直等待知道有一个客户端连接到服务器上的指定端口。3.服务器等待的同时,客户端实例化一个Socket对象,指定要连接的服务器和端口号。4.Socket类的构造器会试图连接到指定的服务器和端口号,如果连接成功,那么客户端中也会有一个用来与服务器通讯的Socket对象。5.一旦有客户端连接到预定的端口,那么服务器中ServerSocket的accept()方法会返回一个Socket对象。在连接建立之后,通讯通过I/O流发生,每个Socket套接字都有一个OutputStream和一个InputStream,客户端的OutputStream连接到服务器的InputStream,客户端的InputStream连接到服务器的OutputStream,不论客户端还是服务器,都是通过其对应的InputStream读取数据,通过OutputStream发送数据,因为TCP协议是一个双向通讯协议,所以数据可以同时通过两个流生。对于UDP套接字编程,数据包包的发送者和接收者都需要使用java.net.DatagramSocket类来接收和发送包。XML(可扩展标记语言,eXtended Markup Language)是一种允许Web应用程序考法人员创建自定义标记,以便更有效组织和传递内容的语言。一个XML文档由两个部分组成:一部分是序言,包括XML文档声明、注释、空白;另一个部分是文档元素,这两个部分是必须的。XML文档声明由"<?xml “开始,以"?>"结束,XML声明有版本号、独立文档声明和编码声明三个属性。属性是由等号分开的名称数值对,位于等号左边的是属性名,等号右边的是值,并用双引号括起来。版本声明必须排在第一位,目前仅1.0唯一可用,XML声明是严格区分大小写的。XML解析技术使用的两种基本API是:文档对象模型(DOM)和XML简单API(SAX)。DOM是一种基于树结构的API,它是基于对象的,与语言和平台无关,DOM的一个显著特点是整个文档必须在内存中解析和存储。SAX则是事件驱动。SAX解析器使用回调机制来通知客户端应用程序,而非将整个文档都存在内存中,这样即使是处理大型文件也不会占用大量内存,由于SAX不创建显式数据结构,因此它比DOM效率更高,SAX的缺点有:SAX是只读的,被设计来读取XML文档而非写入,且文档只能遍历一次。
第七周学习总结s
时间: 2024-10-21 20:11:56
第七周学习总结s的相关文章
2014025688 《嵌入式程序设计》第七周学习总结
2014025688(30) <嵌入式程序设计>第七周学习总结 有名管道 FIFO也称为有名管道,它是一种文件类型.FIFO简单理解,就是它能把两个不相关的进程联系起来,FIFO就像一个公共通道,解决了不同进程之间的"代沟".普通的无名管道只能让相关的进程进行沟通(比如父shell和子shell之间).FIFO严格遵循先进先出(first in first out),对管道及FIFO的读总是从开始处返回数据,对它们的写则把数据添加到末尾.它们不支持诸如lseek()等文件定
20145301第七周学习总结
20145301第七周学习总结 教材学习内容总结 时间的度量 格林威治时间,简称GMT时间,由观察太阳而得来:世界时,UT:国际原子时,TAI:世界协调时间,UTC:Unix时间,以1970年1月1日00:00:00为起点而经过的秒数,不考虑闰秒修正:epoch,以1970年1月1日00:00:00为起点而经过的毫秒数. 年历简介 儒略历,四年一闰:格里高利历改革了儒略历:ISO 8601标准在数据定义上大部分与格里高利历相同. 认识时区 日光节约时间. Date 使用Date实例的各getTi
20145237 《Java程序设计》第七周学习总结
20145237 <Java程序设计>第七周学习总结 教材学习内容总结 第十三章 一.认识时间与日期 1.时间的度量 在正式认识Java提供了哪些时间处理API之前,得先来了解一些时间.日期的历史问题,这样你才会知道,时间日期确实是个很复杂的问题,而使用程序来处理时间日期,也不仅仅是使用API的问题. a.格林威治标准时间:格林威治标准时间简称GMT时间,一开始是参考自格林威治皇家天文台的标准太阳时间,格林威治标准时间的正午是太阳抵达天空最高点之时,格林威治标准时间常被不严谨的
《Linux内核分析》第七周学习笔记
<Linux内核分析>第七周学习笔记 可执行程序的装载 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 [学习视频时间:1小时35分钟 实验时间:1小时 撰写博客时间:2小时] [学习内容:共享库和动态链接.exec系统调用的执行过程.可执行程序的装载] 一.预处理.编译.链接和目标文件的格式 1.1 可执行程序如何得来?
20145311 《Java程序设计》第七周学习总结
20145311 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章 Lambda Lambda表达式会使程序更加地简洁,在平行设计的时候,能够进行并行处理. 第十三章 时间与日期 13.1Time&&Date 13.1.1时间的度量 1.Greenwich Mean Time(格林威治时间)简称GMT时间 观察太阳得来2.Universal Time(世界时)UT3.International Atomic Time(国际原子时)TAI4.Coordinated
《Linux内核分析》第七周学习总结
<Linux内核分析>第七周学习总结 ——可执行程序的装载 姓名:王玮怡 学号:20135116 一.理论部分总结 (一)可执行程序的装载 1.预处理.编译.链接和目标文件的格式 C代码经过编译器的预处理(.cpp),然后编译成汇编代码(.asm/.s),由汇编器成目标代码(.o,二进制文件),再链接成可执行文件,最后由操作系统加载到内存中执行. 预处理:编译器将C源代码中包含的头文件编译进来和执行宏替换等工作 gcc -E hello.c -
2017-2018-1 20155208 《信息安全系统设计基础》第七周学习总结
2017-2018-1 20155208 <信息安全系统设计基础>第七周学习总结 学习目标 了解ISA抽象的作用 掌握ISA,并能举一反三学习其他体系结构 了解流水线和实现方式 教材学习内容总结 4.1 Y86指令集体系结构 ISA(指令集体系结构) 一个处理器支持的指令和指令的字节级编码 有8个程序寄存器:%eax.%ecx.%edx.%ebx.%esi.%edi.%esp.%ebp 处理器的每个程序寄存器存储一个字,寄存器%esp被入栈.出栈.调用和返回指令作为栈指针 有3个一位的条件码:
2017-2018-20155336 《信息安全系统设计基础》第七周学习总结
2017-2018-20155336 <信息安全系统设计基础>第七周学习总结 教材学习内容总结 Y86指令集体系结构 Y86指令 Y86指令集基本上是IA32指令集的一个子集,只包括四字节整数操作,寻址方式比较少,操作也较少. 汇编码表示和字节编码参见课本232页. movl指令:源操作数(i-立即数.r-寄存器.m-存储器).目的操作数(r-寄存器.m-存储器) 四个整数操作指令:addl 加.subl 减.andl 与.xorl 异或 七个跳转指令--分支控制:jmp 直接跳转.jle(S
20165235 祁瑛 2018-4 《Java程序设计》第七周学习总结
20165235 祁瑛 2018-4 <Java程序设计>第七周学习总结 教材学习内容总结 MySQL数据管理系统 MySQL数据管理系统,简称MySQL,是世界上流行的数据管理系统. MySQL是网络数据库管理系统,可以使远程的计算机访问它所管理的数据库. 在Windows上下载好MySQL后,进入Windows命令行,进入MySQL的bin文件目录输入--initialize-insecure对MySQL的data目录进行初始化.然后可以在bin目录下再次输mysql启用MySQL.启用M
20165316 第七周学习总结
20165316 第七周学习总结 学习中遇到的问题和解决过程 主要还是数据库 MySQL 的安装比较麻烦,为此我还重装了 Java 书上原话:MySQL 数据库服务器启动后,应用程序为了能和数据库交互信息,必须首先和 MySQL 数据库服务器上的数据库建立连接.目前在开发中常用的链接数据库的方式是加载 JDBC-数据库驱动,即 JDBC 调用本地的 JDBC-数据库驱动和相应的数据库建立链接. 然而,Java9 根本不支持 lib/ext 的扩展形式(之前我在4.15的总结中也发现 JRE 扩展