- 浏览: 706341 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- Struts1.x (7)
- 事务 (2)
- Hibernate (11)
- 数据库 (14)
- JavaScript&Ajax (43)
- JSP&Servlet (2)
- Flex (1)
- 其它 (9)
- Java (22)
- 框架集成 (1)
- WebService (3)
- Tomcat (3)
- 加密和安全登录 (13)
- 基于原型的JavaScript (0)
- JavaDoc和Java编码规范 (3)
- CAS (1)
- 加密 (1)
- Axis2 (10)
- Ext2.x (3)
- SSH整合 (2)
- Ext (0)
- 正则表达式 (1)
- 设计模式 (4)
- 对象序列化技术 (3)
- CVS (2)
- Struts2 (6)
- Spring 2.x (7)
- Spring Security (2)
- Java 课程 (20)
- 程序员之死 (1)
- 软件测试 (6)
- UML (5)
- NetBeans (1)
- cxf (1)
- JMS (13)
- 设计 (5)
- ibatis2.x (3)
- Oracle (1)
- WebSphere (7)
- 概要设计 (1)
- DB2 (10)
- PowerDesigner (0)
- 软件工程 (5)
- rose (1)
- EA (1)
- LDAP (7)
- Portal&Portlet (3)
- MQ (10)
- ESB (4)
- EJB (2)
- JBoss (2)
最新评论
-
typeRos:
只有配置文件,没有代码么大神
Spring实现IBMMQ的JMS消息发布/订阅模式 -
panamera:
如果ActiveMQ服务器没有启动,这个时候消息生产者使用Jm ...
Spring JMSTemplate 与 JMS 原生API比较 -
lian819:
顶1楼, 引用文件, 配置属性, 太方便了
EXTJS 同步和异步请求 -
wilhard:
说得清楚明白
<%@ include file=""%>与<jsp:include page=""/>区别 -
刘琛颖:
总结的很好。受益了
javascript 父窗口(父页面)— 子窗口 (子页面)互相调用的方法
一. 网络编程的基础知识
1、网络基础知识
计算机网络通常是按照规模大小和延伸范围来分类的, 常见的划分为: 局域网(LAN), 城域网(MAN), 广域网(WAN). INTERNET 可以视为世界上最大的广域网.
如果按照网络的拓扑结构来划分, 可以分为星型网络, 总线网络, 环形网络, 树形网络, 星型环线网络等; 如果按照网络的传输介质来划分, 可以分为双绞线网, 同轴电缆网, 光纤网和卫星网等.
计算机网络中实现通信必须有一些约定, 即通信协议. 对速率, 传输代码, 代码结构, 传输控制步骤, 出错控制等制定标准. 国际标准化组织 ISO 于 1978 年提出"开放系统互连参考模型", 即著名的 OSI (Open System Interconnection), 它把计算机网络分成物理层, 数据链路层, 网络层, 传输层, 会话层, 表示层, 应用层等七层.
网络通信之间必须有硬件和软件方面的支持, 通信协议是网络通信的基础, 而 IP 协议是一种非常重要的协议, IP (InternetProtocol) 协议又称互联网协议, 是支持网间互联的数据报协议, 它提供网间连接的完善功能, 包括 IP 数据报规定互联网络内的地址格式.
经常与 IP 协议放在一起的还有 TCP(Transmission Control Protocol) 协议, 即传输控制协议, 它规定一种可靠的数据信息传递服务. 虽然 IP 和 TCP 这两个协议功能不尽相同, 也可以分开单独使用, 但它们是在同一个时期作为一个协议设计的, 并且在功能上也是互补的, 因此实际使用中常把这两个协议称为 TCP/IP 协议.
按照 TCP/IP 协议模型, 网络通常被分为一个四层模型, 这个四层模型和前面的 OSI 七层模型有大致的对应关系
OSI 分层模型和 TCPIP 分层模型的对应关系
2、IP 地址和端口号
IP 地址用于标识网络中的一个通信实体, 这个通信实体可以是一台主机, 也可以是一台打印机, 或者是路由器的某一个端口. 而在基于 IP 协议的网络中传输数据包, 都必须使用 IP 地址来进行标识.
每个被传输的数据包要包含一个源 IP 地址和一个目的 IP 地址.
IP 地址是数字型的, IP 地址是一个 32 位 (32 bit) 整数, 但通常为了便于记忆, 将它分成 4 个 8 位的二进制数组成, 因此 IP 地址通常显示为如下形式: 202.9.128.88.
NIC (Internet Network Information Center) 统一负责全球 Internet IP 地址的规划和管理, 而 Inter NIC, APNIC 和 RIPE 三大网络信息中心具体负责美国及其他地区的 IP 地址分配, APNIC 负责亚太地区的 IP 管理, APNIC 的总部设在日本的东京大学.
IP 地址可以唯一地确定网络上的一个通信实体, 但一个通信实体可以有多个通信程序同时提供网络服务, 此事还需要使用端口
端口是一个 16 位数的整数, 用于表示数据交给哪个通信程序处理, 因此端口就是应用程序与外界交流的出入口, 它是一种抽象的软件结构, 包括一些数据结构和 I/O (基本输入/输出) 缓冲区.
不同的应用程序处理不同端口上的数据,同一台机器上不能有两个程序使用同一个端口, 端口号可以从 0 到 65535, 通常将端口分为 3 类:
- 公认端口 (Well Known Ports): 从 0 到 1023,它们紧密绑定 (Bingding) 一些服务
- 注册端口 (Registered Ports): 从 1024 到 49151, 它们松散地绑定一些服务
- 动态和/或私有端口 (Dynamic and/or Private Ports): 从 49152 到 65535, 这些端口是应用程序使用的动态端口, 应用程序一般不会主动使用这些端口
- getByName(String host): 根据主机获取对应的 InetAddress 对象
- getByAddress(byte[] addr): 根据原始 IP 地址来获取对应的 InetAddress 对象
- String getCanonicalHostName(): 获取此 IP 地址的全限定域名
- String getHostAddress(): 返回该 InetAddress 实例对应的 IP 地址字符串
- String getHostName(): 获取此 IP 地址的主机名
- URLDecoder 类包含一个 decode(String s, String enc) 静态方法, 他可以让看上去是乱码的特殊字符串转换成普通字符串
- URLEncoder 类包含一个 encode(String s, String enc) 静态方法, 他可以将普通字符串转换成 application/x-www-form-urlencoded MIME 字符串
- String getFile(): 获取此 URL 的资源名
- String getHost(): 获取此 URL 的主机名
- String getPath(): 获取此 URL 的路径部分
- int getPort(): 获取此 URL 的端口号
- String getProtocol(): 获取此 URL 的协议名称
- String getQuery(): 获取此 URL 的查询字符串部分
- URLConnection openConnection(): 返回一个 URLConnection() 对象, 它表示到 URL 所引用的远程对象的连接
- InputStream openStream(): 打开与此 URL 的链接, 并返回一个用于读取该 URL 资源的 InputStream
- 通过调用 URL 对象 openConnection() 方法来创建 URLConnection 对象
- 设置 URLConnection 的参数和普通请求属性
- 如果只是发送 GET 方法请求, 使用 connect 方法建立和远程资源之间的实例连接即可, 如果需要发送 POST 方式的请求, 需要获取 URLConnection 实例对应的输出流来发送请求参数
- 远程资源变为可用, 程序可以访问远程资源的头字段或通过输入流读取远程资源的数据
- setAllowUserInteraction: 设置该 URLConnection 的 allowUserInteraction 请求头字段的值
- setDoInput: 设置该 URLConnection 的 doInput 请求字段的值
- setDoOutput: 设置该 URLConnection 的 doOutput 请求字段的值
- setIfModifiedSince: 设置该 URLConnection 的 ifModifiedSince 请求头字段的值
- setUseCaches: 设置该 URLConnection 的 useCaches 请求头字段的值
- setRequestProperty(String key, String value): 为该 URLConnection 的 key 请求头字段的值为 value:
- addRequestProperty(String key, String value): 为该 URLConnection 的 key 请求头字段的增加 value 值, 该方法不会覆盖原请求头字段的值, 而是将新值追加到原请求头字段中
- Object getContent(): 获取该 URLConnection 的内容
- String getHeaderField(String name): 获取指定响应头字段的值
- getInputStream(): 返回该 URLConnection 对应的输入流, 用于获取 URLConnection 响应的内容
- getOutputStream(): 返回该 URLConnection 对应的输出流, 用于向 URLConnection 发送请求参数
- getHeaderField: 用于根据响应头字段来返回对应的值, 而某些头字段由于需要经常访问, 所以 Java 提供以下方法来访问特定响应头字段的值:
- getContentEncoding: 获取 content-encoding 响应头字段的值
- getContentLength: 获取 content-length 响应头字段的值
- getContentType: 获取 content-type 响应头字段的值
- getDate(): 获取 date 响应头字段的值
- getExpiration(): 获取 expires 响应头字段的值
- getLastModified(): 获取 last-modified 响应头字段的值
- ServerSocket(int port): 用指定的端口 port 来创建一个 ServerSocket. 该端口应该是一个有效的端口整数值: 0-65535
- ServerSocket(int port, int backlog): 增加一个用来改变连接队列长度的参数 backlog.
- ServerSocket(int port, int backlog, InetAddress localAddr): 在机器存在多个 IP 地址的情况下, 允许通过 localAddr 这个参数来指定将 ServerSocket 绑定到指定的 IP 地址.
- Socket(InetAddress/String remoteAddress, int port): 创建连接到指定远程主机, 远程端口的 Socket, 该构造器没有指定本地地址,本地端口,默认使用本地主机的默认 IP 地址, 默认使用系统动态指定的 IP 地址.
- Socket(InetAddress/String remoteAddress, int port, InetAddress localAddr, int localPort): 创建连接到指定远程主机, 远程端口的 Socket, 并指定本地 IP 地址和本地端口号, 适用于本地主机有多个 IP 地址的情形
- InputStream getInputStream(): 返回该 Socket 对象对应的输入流, 让程序通过该输入流从 Socket 中取出数据
- OutputStream getOutputSteam(): 返回该 Socket 对象对应的输出流, 让程序通过该输出流向 Socket 中输出数据
发表评论
-
java:comp/env 解释
2012-07-13 13:40 10842关于获取数据源的语法,大体有(javax.sql.D ... -
java.naming.factory.url.pkgs 的用途
2012-06-28 09:48 1761原文地址:http://blog.csdn.net/l ... -
解析 HTTP
2010-11-14 18:09 48093、HTTP 请求 客户端通过发送 HTTP 请求向服务器 ... -
Tomcat server.xml 文件
2010-11-07 17:21 1229Tomcat 服务器有一系列可配置的组件构成,这些组件 ... -
Tomcat的体系结构
2010-11-04 21:13 1484Tomcat的体系结构 Tomcat服务器是由一系列可配 ... -
第十四课时: 输入/输出1
2010-10-30 20:48 1322Java 的 IO 支持通过 java.io 包 ... -
第十六课时: 多线程
2010-10-07 14:24 983一. 继承 Thread 类创建线程 通过继承 Thread ... -
第十四课时:输入/输出2
2010-09-05 15:54 1256... -
第十三课时:Annotation 注释
2010-08-29 15:55 1138从 JDK 5.0 开始,Java 增加了对元数据 ( ... -
第十二课时:JDBC 编程 (2)
2010-08-28 13:13 880示例: import java.sql.*; impor ... -
第十二课时:JDBC 编程 (1)
2010-08-08 15:52 2106一、SQL 语句基础 SQL 的全称是 Structured ... -
第11课时:异常处理
2010-07-25 16:51 1152一、异常处理机制 1、使用 try...catch 捕获异常 ... -
第十课时:与运行环境交互
2010-07-24 06:03 780一、与用户交互 1、使用 Scanner 获取键盘输入 获 ... -
第九课时:泛型
2010-07-11 17:00 1389一、定义泛型接口、类 JDK 1.5 改写了 ... -
第六课时:面向对象(5)—— 2010年05月22日
2010-07-04 13:45 992一、内部类 在某些情况下,我们把一个类放在另一个类的 ... -
第三课时:面向对象(2)
2010-05-02 23:20 1424一、成员变量与局部变量 二、类的继 ... -
第二课时:数组、面向对象(1)
2010-05-02 23:19 961一、数组 1、 ... -
第四课时:面向对象(3)
2010-05-02 23:17 903一、基本数据类型的包装类 1、 基本数据类型和包装 ... -
第一课时提纲:Java 基础(GC)
2010-03-22 23:22 1190一、Java 命名规范 1、对常量的命名规范: ...
相关推荐
### 第七章:异常处理 - **7.1 异常处理机制**:理解try-catch块的工作原理,throw和throw by value/copy的区别。 - **7.2 自定义异常**:创建和使用自定义异常类,理解异常安全性。 ### 第八章:高级C++特性 - **...
这个名为“信息技术五年级.pptx”的文件显然是一份详细的教学计划,涵盖了从第一课时到第十课时的内容。以下是根据这些课时计划可能涵盖的一些关键知识点的详细说明: **第一课时:信息技术基础** 在这一课时,学生...
第十一至十三课时:UCOS扩展功能 这部分将介绍UCOS的高级特性,比如定时器服务、动态加载任务、动态内存池扩展等。通过这些扩展,你可以根据项目需求定制和优化UCOS。 第十四课时:实战项目 在本课时中,你将利用...
第17学时 CGI概述 195 17.1 浏览Web 195 17.1.1 检索一个静态Web页 196 17.1.2 动态Web页—使用CGI 197 17.2 不要跳过这一节内容 198 17.3 编写你的第一个CGI程序 199 17.3.1 在服务器上安装CGI程序 200 17.3.2 运行...
西门子S7-1200串行通信应用
* 第十二章:网络编程 * 第十三章:数据库编程 * 第十四章:NumPy 模块 * 第十五章:pandas 模块 使用教材及主要参考书目: * 选用教材:自编 * 主要参考书目:SHAW Z A. 《笨办法学 Python 3》王巍巍, 译. 北京: ...
三菱FX PLC编程与应用入门14-20
“第五十七课 - 算法应用之买兔子”可能是关于循环和变量的运用。这节课可能会教孩子们如何模拟购物过程,理解金钱管理,并通过编程实现兔子的购买和数量计算。 “第十六课 - 传感器入门的两个小例子”涉及硬件与...
八年级上册信息技术-第七课 Python 循环语句教案 本教案旨在引导学生学习 Python 编程语言中的循环语句,涵盖 for 循环和 while 循环的基本结构、应用场景和编程思想。 一、教学目标: * 掌握 for 循环和 while ...
本课时以绿灯时长的最优设置为例,深入浅出地阐述了如何通过解析算法来解决实际问题。 首先,算法是解决特定问题的一系列有序步骤,它具有确定性、有限性和可行性。在计算机科学中,算法通常表现为一系列指令,这些...
【标题】:“部编版第二课时作业.doc”主要涵盖了编程基础中的变量命名规则、变量的唯一性、二进制与十进制之间的转换以及不同进制间的转换方法。 【描述】:这份作业文档旨在检验学生对编程基本概念的理解,特别是...
2. 自动编程:利用CAD/CAM软件自动生成程序。 3. 零件加工程序:包含所有加工指令的文本文件。 4. 程序号:如O1000,标识程序的唯一编号。 5. 程序内容:包括G代码、M代码、坐标数据等。 6. 程序结束:以M30表示程序...
第四章 FANUC0-TDⅡ系统的编程与操作是数控车削编程与加工技术中的核心内容,旨在培养学习者掌握FANUC0-TDⅡ系统的编程技巧和实际操作能力。本章的教学目标分为三个层面:一是理解并运用FANUC0-TDⅡ系统编程指令的...
以序列`68 45 35 75 55 17 41`为例,第二趟排序后的状态应为`35 17 41 45 55 68 75`,因此正确答案是D。这个过程包括多次相邻元素比较和交换,直到序列部分或全部达到有序状态。 【编程实现】 在VB中,可以使用数组...
网络安全技术——课程定位 企业对网络专业学生的知识及能力需求调研 专业能力需求统计表 专业能力 调查企业数量 选择的企业数 比例 网络工程能力 31 20 64.5% 网络运维能力 31 17 54.8% 网络编程能力 31 1 3.2% 网站...
西门子200 STEP-7 MicroWIN 编程软件使用30课
第17学时 CGI概述 195 17.1 浏览Web 195 17.1.1 检索一个静态Web页 196 17.1.2 动态Web页—使用CGI 197 17.2 不要跳过这一节内容 198 17.3 编写你的第一个CGI程序 199 17.3.1 在服务器上安装CGI程序 200 17.3.2 运行...
第17学时 CGI概述 195 17.1 浏览Web 195 17.1.1 检索一个静态Web页 196 17.1.2 动态Web页—使用CGI 197 17.2 不要跳过这一节内容 198 17.3 编写你的第一个CGI程序 199 17.3.1 在服务器上安装CGI程序 200 17.3.2 运行...
西门子S7-1200编程应用入门