- 浏览: 699473 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (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 10781关于获取数据源的语法,大体有(javax.sql.D ... -
java.naming.factory.url.pkgs 的用途
2012-06-28 09:48 1737原文地址:http://blog.csdn.net/l ... -
解析 HTTP
2010-11-14 18:09 47893、HTTP 请求 客户端通过发送 HTTP 请求向服务器 ... -
Tomcat server.xml 文件
2010-11-07 17:21 1205Tomcat 服务器有一系列可配置的组件构成,这些组件 ... -
Tomcat的体系结构
2010-11-04 21:13 1463Tomcat的体系结构 Tomcat服务器是由一系列可配 ... -
第十四课时: 输入/输出1
2010-10-30 20:48 1299Java 的 IO 支持通过 java.io 包 ... -
第十六课时: 多线程
2010-10-07 14:24 956一. 继承 Thread 类创建线程 通过继承 Thread ... -
第十四课时:输入/输出2
2010-09-05 15:54 1230... -
第十三课时:Annotation 注释
2010-08-29 15:55 1098从 JDK 5.0 开始,Java 增加了对元数据 ( ... -
第十二课时:JDBC 编程 (2)
2010-08-28 13:13 852示例: import java.sql.*; impor ... -
第十二课时:JDBC 编程 (1)
2010-08-08 15:52 2072一、SQL 语句基础 SQL 的全称是 Structured ... -
第11课时:异常处理
2010-07-25 16:51 1117一、异常处理机制 1、使用 try...catch 捕获异常 ... -
第十课时:与运行环境交互
2010-07-24 06:03 760一、与用户交互 1、使用 Scanner 获取键盘输入 获 ... -
第九课时:泛型
2010-07-11 17:00 1365一、定义泛型接口、类 JDK 1.5 改写了 ... -
第六课时:面向对象(5)—— 2010年05月22日
2010-07-04 13:45 967一、内部类 在某些情况下,我们把一个类放在另一个类的 ... -
第三课时:面向对象(2)
2010-05-02 23:20 1387一、成员变量与局部变量 二、类的继 ... -
第二课时:数组、面向对象(1)
2010-05-02 23:19 943一、数组 1、 ... -
第四课时:面向对象(3)
2010-05-02 23:17 883一、基本数据类型的包装类 1、 基本数据类型和包装 ... -
第一课时提纲:Java 基础(GC)
2010-03-22 23:22 1176一、Java 命名规范 1、对常量的命名规范: ...
相关推荐
第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串行通信应用
三菱FX PLC编程与应用入门14-20
"8 " " "7 "文件操作 "4 " " "8 "异常处理 "6 " " "9 "游戏开发 "6 " " "10 "网络爬虫 "4 " " "11 "办公自动化 "4 " " "合计 " "64 " " "课题 "游戏开发(一)—— 安装Pygame第三方库 " "课时 "2课时(90 min) " ...
八年级上册信息技术-第七课 Python 循环语句教案 本教案旨在引导学生学习 Python 编程语言中的循环语句,涵盖 for 循环和 while 循环的基本结构、应用场景和编程思想。 一、教学目标: * 掌握 for 循环和 while ...
网络安全技术——课程定位 企业对网络专业学生的知识及能力需求调研 专业能力需求统计表 专业能力 调查企业数量 选择的企业数 比例 网络工程能力 31 20 64.5% 网络运维能力 31 17 54.8% 网络编程能力 31 1 3.2% 网站...
四点法标定.exe 第17课 ⽤户坐标系的使⽤和直接输⼊法标定.exe 第18课 ⽤户坐标系的使⽤ 切换⽤户坐标系.exe 第19课 Jog坐标系的使⽤和标定⽅法.exe 第20课 机器⼈的参考点的使⽤和标定.exe 第21课 机器⼈轴的限值...
西门子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编程应用入门
课时8-成为编程能手:Fython知识进阶.mp4 第2章利用Python实现金融数据收集、分析与可视化 课时09-使用Numpy数组实现金融数据高效计算.mp4 课时10-使用Pandas数组实现金融数据高效计算(一).mp4 课时11-使用Pandas...
第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 方法重写Overriding 课时18 方法重载Overloading 课时19 代理Delegates 课时20 单例设计模式Singletons 基础入门之进入Unity的世界 课时1 Unity介绍 课时2 Unity下载和安装 课时3 Unity 破解 课时4 Unity ...
* 分析数据文件:“birth.csv”:70个国家和地区的出生率和死亡率数据,删去第17行和第52行的都是FRANCE的观测值,对剩下的68个国家和地区的出生率和死亡率进行聚类分析。 * 分析数据文件:“LA_Neighborhoods.txt”...
第17课:穿越迷宫 * 了解游戏制作流程:设置舞台和角色、设置猫的起点、设置小猫跟随鼠标移动、判断障碍和成功穿越 * 了解程序通过颜色判断是否碰到障碍 * 了解添加时间计时功能和游戏难度 * 了解控件“计时器归零...