第12章 网络程序设计

合集下载

网络工程师必看书籍

网络工程师必看书籍

转贴]网络工程师考试总结网络工程师考试要想做网络工程师最权威的国家认可的就是计算机软考的中级网络工程师,只有考上这个才能成为网络工程师。

证书由人事部和信息产业部同时颁发,很有权威性~也是政府唯一认可的职称证书:要考网络工程师需要学习的有:1、《网络工程师教程》,必看,当作指导性的大纲来看,它可以使你网络知识的结构更加清晰与合理。

由于教程不完全覆盖考试内容,获取其他资料作为知识的深化和补充是绝对必须的,下面的推荐与大纲介绍的基本同步。

2、《数据通信原理》,包括通信原理和交换技术的内容,在上午肯定有一二道大题,只看教程不够。

对这本书不一定看得太深,即使没有任何基础通上一两遍也不困难,可以让你提高一大步。

这部分相关的内容还包括《信号与系统》,不想做硬件的朋友我觉得就不用看了。

3、网络体系结构和协议,这部分看教程即可。

4、局域网技术,先看教程,然后找一本CCNA英文教材看一遍。

这样有三个好处:比教程更深入;同时提高专业英语水准;顺便学习CISCO路由器和交换机的基础知识。

5、广域网技术看教程,这部分A TM是重点,需要找别的资料深化一下(因为它流行,如CISCO流行一个道理)。

6、网络互连,先看教程。

路由方面的知识教程上不够,建议有Linux环境,看看UNIX系统中的路由配置。

CCNP的教程不必要全看,路由和交换看看就行,中文的也可以。

7、网络操作系统,如上,研究linux就可以。

上午题目里面会有。

8、网络管理上,教程中本章前面对局域网的管理部分非常好,是每一个网络管理员都应该耳熟能详的经验。

后面的SNMP不太深,但是也差不多够了,想深化的找一本《网络管理》,对snmp会有更认识。

9、网络安全,教程很概念化,如果想深入一点,看看《计算机密码学》,对加密技术能有更多感性认识(如RSA的原理,一次一密乱码本),但不用太深入。

如果有条件,还可以感受一下win2000在安全方面对身份认证,鉴别,访问控制等技术的具体实现。

ASP.NET网络程序设计课后习题及答案

ASP.NET网络程序设计课后习题及答案

第一章课后习题一、填空题(20空,每空2分,共40分)1.使用(分级)配置系统,使服务器环境和应用程序的设置更加简单。

2.有两种常用的脚本语言(VB Script)和(Java Script)。

3.计算机中安装(.NET Framework)以后,系统就可以运行任何.NET语言编写的软件。

4..NET Framework由两部分组成:(框架类库)和(公共语言运行库)。

5.CLR是指(公共语言运行库),其功能是负责(运行和维护程序员编写的程序代码)。

6..NET Framework公共语言运行库最重要的功能是为提供(执行环境)。

7.框架中的类分别放在了不同的(命名空间)中。

8.所有与操作文件系统有关的类都位于(System.IO)命名空间中。

9.IIS是指(与相配套的服务器平台)。

10.命名空间(System.T ext)包含用于文本处理的类,实现了不同编码方式操作文本。

11.所有SQL Server数据库应用的类都位于(System.Data.SqlClient)命名空间。

12.运行环境必须安装.NET程序赖以执行的(.NET Framework)。

13.默认的资源文件扩展名是(aspx)。

14.FCL是指(公共代码),其功能是(重复多次使用框架类库中的类)。

15.与相配套的服务器平台是(微软的IIS)。

16.目前最专业的.NET开发工具是(Visual Studio 2010)。

二、选择题(10小题,每小题2分,共20分)1.广泛用于网站编程的语言是3P,以下( C )不是3P语言之一。

A.ASP B.PHP C.PB D.JSP2.采用C#、V isual Basic语言作为脚本,执行时一次编译,可以( B )执行。

A.一次B.多次C.两次D.三次3.( B )是.NET的标准语言。

A.C++ B.C# C.Visual Basic D.Java4.默认的页面文件扩展名是( D )。

A.asp B.aspnet C.net D.aspx5.Windows 2003内置了.Net Framework的版本是(A)。

网络程序设计课后答案

网络程序设计课后答案

网络程序设计课后答案【篇一:网络程序设计—asp(第3版尚俊杰编著)课后习题答案】txt>1. 选择题(可多选)(1)静态网页的扩展名一般是:a.htm b .phpc.aspd.jsp答案:a(2)asp文件的扩展名是:a.htmb. txtc. docd. asp答案:d(3)当前的web程序开发中通常采用什么模式?a. c/sb. b/sc. b/bd. c/c答案:b解释:c/s是客户机(client)/服务器(server),b/s是浏览器(browser)/服务器。

c/s一般要求用户有特定的客户端。

比如qq就是c/s模式,你的桌面上的qq就是腾讯公司的特定的客户端,而服务器就是腾讯的服务器。

而b/s模式则不需要特定的客户端,只要有普通浏览器,就可以访问到服务器了,web页就是b/s 模式。

(4)小王正在家里通过拨号上网访问搜狐主页,此时,他自己的计算机是:a. 客户端b. 既是服务器端又是客户端c. 服务器端d. 既不是服务器端也不是客户端答案:a(5)小王正在访问自己计算机上的网页,此时,他自己的计算机是: a. 客户端b. 既是服务器端又是客户端c. 服务器端d. 既不是服务器端也不是客户端答案:b(6)asp脚本代码是在哪里执行的?a. 客户端b. 第一次在客户端,以后在服务器端c. 服务器端d. 第一次在服务器端,以后在客户端答案:c解释:asp脚本代码是在服务器端运行的,服务器将其解释执行为标准的html代码,然后发送到客户端。

(7)在以下url中,从形式上看正确的是:a. .cn/history/1998/intro.aspb. .cn/news/1.jpg答案:a b c d解释:从形式上看,都是正确的。

(8)如果在chapter1下建立了一个子文件夹images,并且在其中放置了一个图片文件1.jpg,那么以下url正确的是:a. http://localhost/asptemp/chapter1/images/1.jpgb. http://127.0.0.1/asptemp/chapter1/images/1.jpg答案:a b(9)对于1.5.5节建立的1-2.asp,以下浏览方式正确的是:a. http://localhost/temp/1-2.aspb. http://127.0.0.1/temp/1-2.aspc. http://localhost/asptemp/chapter1/temp/1-2.aspd. http://127.0.0.1/asptemp/chapter1/temp/1-2.asp答案:a b c d解释:ab两种方式利用了建立的虚拟目录,cd实际上没有用到这个虚拟目录,此时和1-1.asp没有什么区别。

单片机基础(第3版)——第12章1 看-

单片机基础(第3版)——第12章1 看-

;t0值送A,舍弃乘积低8位
CLR C
;清进位位
SUBB A, B;t0-K×VT
CJNE A, #0AH, COMP1
COMP1:JNC COMP4
;温度低于10℃,显示F
CJNE A, #97H, COMP2
COMP2:JC
COMP3
;温度低于151℃,则转移
COMP4:MOV 27H, #0FH
① 要计算计数初值。 ② 采用中断方式,即通过中断服务程序进行计数器溢出次数的累计,
计满8次即得到秒计时。
③ 通过在程序中的数值累加和数值比较来实现从秒到分和从分到时 的计时。
④ 设置时钟显示缓冲区。
2. 程序流程
(1)主程序MAIN
主程序的主要功能是进行定时器/计数器的初始化编程,然后通过反 复调用显示子程序的方法,等待125 ms定时中断的出现。流程
② 十进制调整。加1后须进行十进制调整。
③ 分数。把加1后的时间值再拆分成两个字 节,送回各自的缓冲单元中。
3. 程序清单(略)
12.1.2 数字式热敏电阻温度计
1. 热敏电阻温度转换原理
热敏电阻与普通热电阻不同,它具有负电阻温度特性,当温度升高 时,电阻值减小。其特性曲线如下图所示 。常在要求不高的一 般应用中,作出在一定的温度范围内温度与阻值成线性关系的假 定,以简化计算。
假定6位数码管显示缓冲区的存储单元为内部RAM 27H~2CH(对应 LED0~LED5)。输入的A/D转换电压VT在累加器A中,扩大 256倍后的K值为0XXH,T0值为0YYH。温度计算程序如下:
COMP: MOV B, #0XXH
;扩大256倍的K值送B
MUL AB;256×K×VT

【安富莱】DSP教程-第12章StatisticsMathFunctions的使用(二)

【安富莱】DSP教程-第12章StatisticsMathFunctions的使用(二)

安富莱S T M32-V5开发板数字信号处理教程文档版本:V1.0安富莱电子W W W.A R M F L Y.C O M声明本文档的版权归武汉安富莱电子有限公司所有。

任何公司或者个人未经许可,不得将本文档用于商业目的。

⏹本文档由安富莱电子原创,非我们原创的资料已经在章节的开头进行申明(特别是F F T部分)。

⏹教程中使用的D S P库是来自A R M公司。

⏹教程参考资料如下:◆C o r t e x-M4权威指南。

◆数字信号处理理论、算法与实现第二版(作者:胡广书)。

◆信号与系统第二版(作者:奥本海姆)。

◆M a t l a b的h e l p文档。

◆力科示波器基础应用系列文档。

◆百度百科,w i k i百科。

◆网络资源。

◆S T官方相关文档。

第12章StatisticsMathFunctions的使用(二)本期教程主要讲解统计函数中的标准偏差、均方根和方差的计算。

12.1 标准偏差 Standard deviation12.2 均方差RMS12.3 方差 Variance12.4总结12.1标准偏差S t a n d a r d d e v i a t i o n这部分函数用于计算标准偏差,公式描述如下:Result = sqrt((sumOfSquares - sum2 / blockSize) / (blockSize - 1))其中:sumOfSquares = pSrc[0] * pSrc[0] + pSrc[1] * pSrc[1] + ... + pSrc[blockSize-1] *pSrc[blockSize-1]sum = pSrc[0] + pSrc[1] + pSrc[2] + ... + pSrc[blockSize-1]12.1.1a r m_s t d_f32此函数的使用比较简单,函数定义如下:void arm_std_f32(float32_t * pSrc, uint32_t blockSize, float32_t * pResult)参数定义:[in] *pSrc points to the input vector[in] blockSize length of the input vector[out] *pResult standard deviation value returned here12.1.2a r m_s t d_q31此函数的使用比较简单,函数定义如下:void arm_std_q31(q31_t * pSrc, uint32_t blockSize, q31_t * pResult)参数定义:[in] *pSrc points to the input vector[in] blockSize length of the input vector[out] *pResult standard deviation value returned here注意事项:输入参数是1.31格式的,相乘后输出就是1.31*1.31 = 2.62格式,这种情况下,函数内部使用的64位累加器很容易溢出,并且这个函数不支持饱和运算,这个函数的使用还有一些问题,有待后面解决。

《计算机编程导论》教学大纲

《计算机编程导论》教学大纲

理论课程教学大纲《计算机编程导论》教学大纲课程编号:总学时:64(其中,讲课:32;实验:32)学分:3实践教学:0周修读专业:计算机科学与技术、电子信息工程大纲文本一、课程的主要内容第1章顺序程序设计 4t1.1用计算机解决问题的方法1.2学习程序设计的要素1.2.1 学会使用框图1.2.2 理解程序运行过程1.2.3 掌握一些基本算法1.2.4 学习完整的解决问题的过程1.3 程序设计的一般过程1.4 顺序程序设计问题1.5 顺序程序设计基础知识1.5.1 Python的对象模型1.5.2 Python的变量和引用1.5.3 数字1.5.4 操作符和表达式1.5.5 常用内置函数1.5.6 输入输出1.5.7 模块的导入1.7 顺序程序设计基础知识的应用1.8 代码块的缩进第2章使用序列 4t2.1 序列问题2.2 表格基础知识2.2.1 列表2.2.2 元组2.2.3 字典2.3 序列基础知识的应用第3章选择结构程序设计 2t3.1 选择结构基本问题3.2 选择结构基础知识的应用第4章循环结构程序设计 4t4.1 循环结构程序设计问题4.2 循环结构概述4.3 while语句4.2.1 while语句用于有限循环4.2.2 while语句用于无限循环4.2.3 while语句编程举例4.4 for语句4.3.1 for语句用于序列类型4.3.2 for语句用于计数循环4.5 break语句4.6 continue语句第5章字符串 1t5.1 字符串问题5.2 字符串基础知识5.2.1字符串格式化5.2.2字符串的截取5.2.3字符串的方法5.2.4与字符串相关的重要内置的方法5.3 字符串基础知识的应用第6章函数的设计和使用 3t6.1 问题的引入6.2 黑箱模型6.3 函数基础知识6.2.1 函数的概念及定义6.2.2 形参和实参6.2.3 return语句6.4 变量的作用域6.4.1 局部变量6.4.2 全局变量6.4.3* 命名空间6.5 参数类型6.4.2 关键参数6.4.3* 可变长度参数6.4.4* 表格作实参6.6 函数基础知识的应用第7章文件的使用2t7.1 与文件有关的问题7.2 文件基础知识7.2.1 文件的打开或创建7.2.2 字符编码7.2.3 文本文件的写入7.2.4 文本文件的读取7.2.5 文件指针的移动7.2.6 二进制文件的写入7.2.7 二进制文件的读取7.3 文件基础知识的应用7.4 文件操作7.4.1 常用文件操作函数7.4.2 文件的复制7.4.3 文件的删除7.4.4 文件的重命名7.4.5 文件的比较7.5 目录操作7.5.1 目录的创建7.5.2 目录的删除7.5.3 目录的遍历第8章面向对象程序设计2t8.1 面向对象程序设计问题8.2 面向对象程序设计基础知识8.2.1 类和对象8.2.2 实例属性和类属性8.2.3 类的方法8.2.4 构造函数8.2.5 析构函数8.2.6 运算符的重载8.2.7 继承第9章图形用户界面程序设计2t *9.1 图形用户界面的选择和安装9.1.1 常用GUI 工具介绍9.1.2 wxPython 下载安装9.2 图形用户界面程序设计基本问题9.3 框架的创建和使用9.3.1 wx.Frame 的格式9.3.2 wxPython 的ID 参数9.3.3 wx.Point 和wx.Size9.3.4 设置wx.Frame的样式9.4 添加窗体控件9.4.1 命令按钮9.4.2 文本控件*9.4.3 菜单栏、工具栏和状态栏*9.4.4 对话框*9.4.5 复选框*9.4.6 单选按钮*9.4.7 列表框*9.4.8 组合框*9.4.9 树型控件9.5 使用Boa-constructor 开发图形用户界面程序*9.5.1 Boa-constructor 的安装9.5.2 使用Boa-constructor 开发图形用户界面程序*9.6 图形界面程序设计基础知识的应用第10章网络程序设计2t-外专业不上10.1 问题的引入10.2 一个简单邮寄过程10.3 TCP/IP 协议簇简介10.4 TCP 和UDP10.5 UDP 网络编程10.6 UDP 代码解释10.7 UDP 函数介绍10.7.1 socket10.7.2 sendto10.7.3 recvfrom10.8 TCP 网络编程10.9 TCP 代码详解10.10 TCP 函数介绍10.10.1 connect10.10.2 send10.10.3 recv10.10.4 bind10.10.5 listen10.10.6 accept*10.11 局域网聊天室10.11.1 需求分析10.11.2 概要设计10.11.3 详细设计10.11.4 编码和测试*第11章异常处理2t-自学11.1 什么是异常11.2 Python 中的异常类11.3 捕获和处理异常11.3.1 try ... except ... 语句11.3.2 try ... except ... else ...语句11.3.3 带有多个except 的try 语句11.3.4 捕获所有异常11.3.5 finally 子句11.4 两种处理异常的特殊方法11.4.1 断言语句(assert 语句)11.4.2 上下文管理(with 语句)11.5 引发异常(raise 语句)11.6 异常和sys 模块*第12章数据库应用程序开发4t-自学12.1 数据库应用程序的问题描述12.2 Python 数据库应用程序开发概述12.3 SQLite 简介12.4 SQLite 基本功能12.5 SQLite 的可视化工具12.6 数据库应用程序开发第13 章游戏开发4t13.1 图形化的问候问题13.2 Pygame 基础知识13.2.1 Pygame 的安装13.2.2 Pygame 的模块13.2.3 Pygame 的使用13.3 游戏开发第14章语音识别软件开发-2t-外专业不上14.1 speech.py 语音模块的简介14.2 语音识别开发环境的建立14.3 语音识别的配置14.4 语音模块的运用*第15 章屏幕广播程序开发2t-自学15.1 屏幕广播程序原理15.2 教师端15.3 学生端15.4 程序运行*第16章web2py编程4t-自学16.1 网页与HTML16.1.1 HTML 语言简介16.1.2 HTML 标签简介16.2 web2py 与MVC16.2.1 安装web2py16.2.2 web2py 的应用说明:加*者表示自学二、实验三、实习本课程无实习,由于是新生。

《微机原理与应用》第12章DMA接口

《微机原理与应用》第12章DMA接口
实时数据采集与处理
DMA接口可满足音视频处理中对实时数据采集和处理的需求。
高质量音视频输出
通过DMA传输,可实现高质量的音视频输出,提升用户体验。
多通道数据传输
DMA支持多通道数据传输,适用于音视频处理中多路信号同时 处理的情况。
在大规模数据存储中优化性能
高速数据存储
DMA接口可实现大规模数据的快速存储,提高存 储系统性能。
06 应用案例分析
在嵌入式系统中应用DMA接口
数据采集与传输
DMA接口可实现嵌入式 系统中高速、连续的数 据采集与传输,减轻 CPU负担。
实时性控制
DMA传输方式可确保嵌 入式系统对实时性要求 较高的任务得到及时处 理。
系统资源优化
通过DMA接口,可优化 嵌入式系统的内存、IO 等资源分配,提高系统 整体性能。
减少CPU干预策略
利用DMA控制器的自主传输能力
DMA控制器可以独立地完成数据传输任务,无需CPU的干 预,从而释放CPU资源。
采用周期窃取技术
在CPU空闲时,利用DMA控制器窃取CPU的一个或多个周 期进行数据传输,以减少对CPU的占用。
优化中断处理
合理设置DMA传输完成后的中断优先级和处理程序,以减 少中断对CPU的影响。
为了通知CPU数据传输已 经完成,DMA控制器会产 生一个中断信号,触发 CPU的中断处理程序。
结束处理
CPU在接收到中断信号后, 会执行相应的中断处理程 序,完成DMA传输的结束 处理。
异常和错误处理机制
异常检测
DMA控制器在数据传输过程中会检测各种异常情况,如地址越界、数据错误等。
错误处理
一旦发现异常情况,DMA控制器会立即停止数据传输,并产生相应的错误信号,通知 CPU进行错误处理。

Java程序设计 课程教学大纲

Java程序设计 课程教学大纲

Java*序设计课程教学大纲一、课程的基本信息适应对象:信息与计算科学课程代码:15E02115学时分配:54赋予学分:3先修课程:数据库原理与技术,算法与数据结构后续课程:Web应用程序设计二'课程性质与任务《Java程序设计》是信息与计算科学专业的一门必修课程。

本课程主要讲解Java的基本概念和特点,面向对象程序设计的编程思想和逻辑思维方式,旨在培养学生的面向对象思维能力,团队合作和创新能力,分析问题,解决问题的能力,提高专业综合素养。

三' 教学目的与要求通过本课程的教学,使学生对Java语言的历史,开展及应用有一个比拟全面的了解;理解Java 语言的基本概念,基本特点及优越性;理解Java程序设计基本理论知识;掌握面向对象程序设计基本思想方法;掌握类的定义和使用,GUI编程,多线程编程,网络编程技术,培养学生面向对象思维,逻辑思维及算法设计能力,培养团队合作精神,使学生具备开发小型应用软件的能力,为今后从事软件开发和应用打下良好的基础。

四' 教学内容与安排第1章Java语言概述(2课时)Java语言的诞生背景、特点、运行机制;开发环境的搭建:JDK下载,安装,测试,Eclipse 第2章Java语言的基本语法(1课时)标识符和关键字;常量与变量;数据类型;引用数据类型;数组第3章运算符与流程控制(1课时)运算符与表达式,if语句;while语句;break和continue语句;for语句;switch语句第4章面向对象基础(6课时)类;构造方法与对象;参数传值;对向的组合;THIS关键字;包第5章继承与多态(6课时)继承简介;子类的继承;多态;抽象类;内部类第6章接口(4课时)接口简介;接口定义;接口的实现;接口回调;接口参数;面向接口编程第7章异常处理(2课时)异常处理;异常类;自定义异常第8章常用的实用类(6课时)String 类;Date 类;Scanner 类;包装类第9章集合(4课时)Collection 接口;List 集合;Set 集合;Map 集合第10章Java输入输出(4课时)File类;流;字节流;字符流;过滤器流;对象序列化第H章Swing程序设计(6课时)常用布局管理器;常用面板;常用组件;常用事件处理第12章多线程(4课时)线程的创立;线程的生命周期;线程的优先级;线程的控制;线程的同步;线程通信第13章网络程序设计(4课时)基础知识;IP地址封装;套接字;数据报第14章JDBC数据库编程(4课时)创立数据库连接;操作数据库:添加、查询、修改、删除五、附录教学参考文献目录【1】龚炳江.Java程序设计[M],北京:清华大学出版社,2016年4月。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA 程序设计
12.3.1 客户端与服务器端通信
JAVA 程序设计
12.3.1 客户端与服务器端通信
【例12-3】简单的客户服务器程序举例,程序分客 户端和服务器端程序,两个程序之间能互相通信,并 能输出套接字的一些基本信息。
JAVA 程序设计
12.4.1 UDP数据报文包
包中提供了DatagramSocket类来实现数据报功能,它的构造方法有6个如下: DatagramPacket(byte[] buf, int length) 该构造方法构造数据报,用来接收长度为 length 的数据包。 DatagramPacket(byte[] buf, int length, InetAddress address, int port) 该构造方法构造构造数据报,用来将长度为 length 的包发送到指定主机上的指定端口 号。 该例创建了一个DatagramPacket对象,该对象以字节数组buf作为发送缓冲区,数据报 发送的目的主机的ip地址为主机名localhost的主机也即本机,端口号为8000。 DatagramPacket(byte[] buf, int offset, int length) 该构造方法构造构造数据报,用来接收长度为 length 的包,在缓冲区中指定了偏移量 。 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 该构造方法构造构造数据报,用来将长度为 length 偏移量为 offset 的包发送到指定主 机上的指定端口号。 DatagramPacket(byte[] buf, int offset, int length, SocketAddress address) 该构造方法构造构造数据报,用来将长度为 length 偏移量为 offset 的包发送到指定主 机上的指定端口号。
JAVA 程序设计
12.1.1 IP地址与端口号
通常把32位二进制分成4组,每组8位,用十进制 表示,每组的十进制数值范围为0~255,比如 202.196.1.100。 特殊IP地址127.0.0.1(对应的主机名为localhost) 被用作本地环回地址。一般来说该IP地址代表本地主 机,如果调试时没有网络环境,通过访问IP地址 127.0.0.1或本机域名localhost,可以让本主机和自身构 成一个虚拟的网络,从而完成网络测试。
JAVA 程序设计
12.1.1 IP地址与端口号
JAVA 程序设计
12.1.1 IP地址与端口号
1 import .*; 2 public class InetAddress12_1 3 { 4 public static void main(String args[]) 5 { 6 try 7 { 8 InetAddress ip1=InetAddress.getLocalHost(); 9 byte[] b=ip1.getAddress(); 10 InetAddress ip2=InetAddress.getByAddress("HOST",b); 11 System.out.println("ip1的名称为:"+ip1.getHostName()); 12 System.out.println("ip1的ip地址为 :"+ip1.getHostAddress()); 13 System.out.println("ip2的名称为:"+ip2.getHostName()); 14 System.out.println("ip2的ip地址为 :"+ip2.getHostAddress()); 15 InetSocketAddress ip=new InetSocketAddress(ip1,8080); 16 System.out.println("InetSocketAddress对象的ip地址加端口号为:"+ip.getAddress()); 17 System.out.println("InetSocketAddress对象的端口号为:"+ip.getPort()); 18 } 19 catch(Exception e) 20 { 21 e.printStackTrace(); 22 } 23 }}
JAVA 程序设计
12.1.3 客户服务器工作模式
网络通信需要通信双方来来协调完成,通常我们把 主动提出网络通信请求的一方称为客户端,而被动等 待其它主机提出请求才作出相应的一方称为服务器端 。服务器端运行服务程序循环等待并监听有无客户端 向其提出通信请求,如果有客户端向其提出请求连接 ,则立刻作出响应,因此服务器端也可以理解成提供 服务的一端,而客户端为使用服务器端提供的服务。
第12章 网络程序设计
Java语言作为一门基于网络的编程语言,为网络 程序设计提供了较好地支持,Java丰富的网络相 关类库资源屏蔽了底层的通信细节,使开发者开 发网络应用程序更加高效、快捷。Java主要通过 包中定义的一些类和接口来完成网络通信 的功能。
本章内容: 12.1 网络的基本概念 12.2 URL的使用 12.3 基于TCP的网络通信 12.4 基于UDP的网络通信
JAVA 程序设计
12.2.2 URL类
URL类有6个构造方法如下: URL(String spec) 该构造方法根据 String 表示形式的资源地址创建 URL 对象。 例如:URL urladderss=new URL(“http://127.0.0.1:80/news/page1.html”); URL(String protocol,String host,int port,String file) 该构造方法根据指定 protocol、host、port 号和 file 创建 URL 对象。 URL(String protocol, String host,int port,String file,URLStreamHandler handler) 该构造方法根据指定的 protocol、host、port 号、file 和 handler 创建 URL 对象。 URL(String protocol, String host,String file) 该构造方法根据指定的 protocol 名称、host 名称和 file 名称创建 URL。 URL(URL context,String spec) 该构造方法通过在指定的上下文中对给定的 spec 进行解析创建 URL。 例如:URL urladderss1=new URL(http://127.0.0.1:80/news/); URL urladdress2=new URL(urladdress1,”page1.html”); URL(URL context, String spec,URLStreamHandler handler) 该构造方法通过指定的上下文中用指定的处理程序对给定spec进行解析来创建 URL。
JAVA 程序设计
12.1.1 IP地址与端口号
主机能分配的端口有多个,通常用16位的二进制来标 识,也即允许有64K个端口号。端口号分为2.1.2 Java中IP地址及端口号表示
JAVA 程序设计
12.1.1 IP地址与端口号
类 InetSocketAddress可以用于表示IP地址和端口号,该类实现 IP套接字地址(IP地址+端口号),也可以是一个对(主机名 +端口号),在此情况下,将会对主机名进行解析。 InetSocketAddress类有3个构造方法如下: InetSocketAddress(InetAddress addr, int port) 该构造方法根据 IP 地址和端口号创建套接字地址。 InetSocketAddress(int port) 该构造方法创建套接字地址,其中 IP 地址为通配符地址,端 口号为指定值。 InetSocketAddress(String hostname, int port) 该构造方法根据主机名和端口号创建套接字地址。
JAVA 程序设计
12.3.1 客户端与服务器端通信
2. 服务器端通信 (1)创建套接字 (2)使服务器端套接字处于监听状态 服务器通过ServerSocket对象的accept()方法对网络进行监听。 (3)为套接字创建输入和输出流 监听到客户端的连接请求并实现连接后,通过accept()方法获取到一个 Socket对象,再通过其getInputStream()和getOutputStream()方法获取输入 和输出流。 (4)按照协议向套接字进行读和写操作 通过第(3)步所获取到的输入输出流,结合第9章的输入输出流完成数据的 读写操作。 (5)关闭套接字 通过调用ServerSocket对象的close()方法关闭套接字。
JAVA 程序设计
12.2.2 URL类
JAVA 程序设计
12.2.3通过URLConnection实现双向通信
通过URL对象的openStream()方法只能实现对资源信息的读取,URL对象的openConnection 方法可以获得一个URLConnection对象,该对象不仅可以从资源中读取数据,还可以向资源 中写入数据。 例如: URL urladd=new URL(); URLConnection con=urladd.openConnection(); 建立了连接以后就可以用URLConncetion对象的getInputStream()方法用于获取与URL对象 代表的资源关联的InputStream对象,利用该对象可以从URL端读取数据。 例如: BufferedReader brin=new BufferedReader(new InputStreamReader(con.getInputSteam())); int c=brin.read(); 用URLConncetion对象的getOutputSteam()方法可以用于获取与URL对象代表的资源关联的 OutputStream对象,用该对象可以向URL资源写数据。 例如: BufferedWriter brout=new BufferedWriter(new OutputStreamWriter(con.getOutputSteam())); brout.write(c);
相关文档
最新文档