corejava day15 - UDP协议、URL、Class类
2011/8/11
======================
1.UDP协议
1)UDP是用户数据报协议,也是传输层的协议。
特点:网络端点之间不需要连接,数据是无序发送的,
数据在传递过程中可能产生丢失IP包的情况,
是不可靠的传递方式。具有简单效率高的特点
java.net包与UDP编程有关的类:
InetAddress类、DatagramPacket类、
DatagramSocket类
2)InetAddress类:用于表示IP地址
方法:
static InetAddress getByAddress(byte[] ip) -
返回ip地址(String->byte[])的InetAddress对象
static InetAddress getByName(String host) -
返回主机名称的InetAddress对象
static InetAddress getLocalhost() -
返回本机的InetAddress对象
3)DatagramPacket类:用于表示数据报
方法:DatagramPacket(byte[] b,int len) -
- 创建数据报对象,通常用在服务器端
DatagramPacket(byte[] b,int len,
InetAddress addr,int port) -
- 创建数据报对象,通常用在客户端发送数据时
int getLength() - 用于指定接收的数据报的长度,
实际上是数据报中字节数组的长度
byte[] getData() - 返回数据报中的字节数组
4)DatagramSocket类:用于表示数据报套接字
方法:DatagramSocket() - 创建套接字,通常用在客户端
DatagramSocket(int port) -
创建套接字,指定端口号,通常用在服务器端
void send(DatagramPacket p) -
用于发送数据报,通常用于客户端
void receive(DatagramPacket p) -
用于接收数据报,通常用于服务器端
void close() - 关闭套接字
5)使用UDP协议网络编程的步骤:
服务器端:
a.创建数据报套接字,指定端口号
b.调用reveice()方法接收数据报,
数据报DatagramPacket包含一个空的字节数组,
接收到数据之间当前线程处于阻塞状态
c.当接收到客户端的数据报时,
需要使用新的线程处理数据
d.处理数据,getData()->byte[]
getLength()->int(接收到的字节个数)
e.在服务器结束时关闭套接字Socket
客户端:
a.创建客户端数据报套接字,不需要指定端口
b.将需要发送的数据封装在数据报中,
指明服务器的IP地址和端口号
c.发送数据报
d.在客户端结束时关闭套接字Socket
2.URL
1)什么是URL?
URL称为全局资源标识符,用于唯一标识网络资源。
网页html、图像jpg等都是网络资源
2)URL的格式:
协议://主机名称(IP地址):端口/文件路径
URL的示例:
http://crm.tarena.com.cn
http://www.tarena.com[:80]/index.html
http://localhost:8080/login.jsp
http://127.0.0.1:8080/oa/login.jsp
ftp://ftp.tarema.com.cn
file://src/corejava/day15/day15.txt
mailto://邮箱地址
常用的协议:http,https(安全的http)
ftp,file,mailto
3)java.net.URL类:用于使用和操作URL
方法:URL(String spec) -
通过url格式的字符串创建URL对象
URL(String protocol,String host,
int port,String path) -
通过协议、主机名、端口号和文件路径创建URL对象
InputStream openStream() - 返回URL的字节输入流
3.HTTP协议
1)什么是HTTP协议?
HTTP协议称为超文本传输协议,
用于在网络间传输HTML文件,
是应用层协议,默认端口号是80。
2)HTTP协议的特点:
基于请求(Request)/响应(Response)模式
无连接:HTTP使用TCP协议创建Socket,
在每一次请求/响应结束后连接就关闭。
无状态:对同一个网站的不同请求/响应之间是不相关的,
从而不能在不同的请求之间操作相同的数据
3)请求/响应的格式:
HTTP请求由 请求行、头部、正文组成
[请求行]
GET /index.html http/1.1\r\n
[头部]
User-agent=IE...(浏览器的版本信息)
Accept=text/html,image/jpeg
(浏览器接收的文档类型)
正文在请求中常常是省略的
HTTP响应由 响应行、头部、正文组成
[响应行]
HTTP/1.1 200 OK
(响应状态有:200正常、404文件未找到、500服务器错误)
[头部]
Server=localhost
Content-length=1024(响应内容长度)
Content-type=text/html(响应内容类型)
[正文]
html文本
4.java.lang.Class类:用于获取对象的运行时信息
1)获取Class对象的方式:
a.Class cls=类名.class;
b.Class cls=对象.getClass();
c.Class cls=
Class.forName(String className)
参数className是一个完全限定类名
2)Class类的方法:
Method[] getMethods() - 返回方法数组
Constructor[] getConstructors() -
返回构造方法的数组
Object newInstance() - 创建一个新的实例
2011/8/11
======================
1.UDP协议
1)UDP是用户数据报协议,也是传输层的协议。
特点:网络端点之间不需要连接,数据是无序发送的,
数据在传递过程中可能产生丢失IP包的情况,
是不可靠的传递方式。具有简单效率高的特点
java.net包与UDP编程有关的类:
InetAddress类、DatagramPacket类、
DatagramSocket类
2)InetAddress类:用于表示IP地址
方法:
static InetAddress getByAddress(byte[] ip) -
返回ip地址(String->byte[])的InetAddress对象
static InetAddress getByName(String host) -
返回主机名称的InetAddress对象
static InetAddress getLocalhost() -
返回本机的InetAddress对象
3)DatagramPacket类:用于表示数据报
方法:DatagramPacket(byte[] b,int len) -
- 创建数据报对象,通常用在服务器端
DatagramPacket(byte[] b,int len,
InetAddress addr,int port) -
- 创建数据报对象,通常用在客户端发送数据时
int getLength() - 用于指定接收的数据报的长度,
实际上是数据报中字节数组的长度
byte[] getData() - 返回数据报中的字节数组
4)DatagramSocket类:用于表示数据报套接字
方法:DatagramSocket() - 创建套接字,通常用在客户端
DatagramSocket(int port) -
创建套接字,指定端口号,通常用在服务器端
void send(DatagramPacket p) -
用于发送数据报,通常用于客户端
void receive(DatagramPacket p) -
用于接收数据报,通常用于服务器端
void close() - 关闭套接字
5)使用UDP协议网络编程的步骤:
服务器端:
a.创建数据报套接字,指定端口号
b.调用reveice()方法接收数据报,
数据报DatagramPacket包含一个空的字节数组,
接收到数据之间当前线程处于阻塞状态
c.当接收到客户端的数据报时,
需要使用新的线程处理数据
d.处理数据,getData()->byte[]
getLength()->int(接收到的字节个数)
e.在服务器结束时关闭套接字Socket
客户端:
a.创建客户端数据报套接字,不需要指定端口
b.将需要发送的数据封装在数据报中,
指明服务器的IP地址和端口号
c.发送数据报
d.在客户端结束时关闭套接字Socket
2.URL
1)什么是URL?
URL称为全局资源标识符,用于唯一标识网络资源。
网页html、图像jpg等都是网络资源
2)URL的格式:
协议://主机名称(IP地址):端口/文件路径
URL的示例:
http://crm.tarena.com.cn
http://www.tarena.com[:80]/index.html
http://localhost:8080/login.jsp
http://127.0.0.1:8080/oa/login.jsp
ftp://ftp.tarema.com.cn
file://src/corejava/day15/day15.txt
mailto://邮箱地址
常用的协议:http,https(安全的http)
ftp,file,mailto
3)java.net.URL类:用于使用和操作URL
方法:URL(String spec) -
通过url格式的字符串创建URL对象
URL(String protocol,String host,
int port,String path) -
通过协议、主机名、端口号和文件路径创建URL对象
InputStream openStream() - 返回URL的字节输入流
3.HTTP协议
1)什么是HTTP协议?
HTTP协议称为超文本传输协议,
用于在网络间传输HTML文件,
是应用层协议,默认端口号是80。
2)HTTP协议的特点:
基于请求(Request)/响应(Response)模式
无连接:HTTP使用TCP协议创建Socket,
在每一次请求/响应结束后连接就关闭。
无状态:对同一个网站的不同请求/响应之间是不相关的,
从而不能在不同的请求之间操作相同的数据
3)请求/响应的格式:
HTTP请求由 请求行、头部、正文组成
[请求行]
GET /index.html http/1.1\r\n
[头部]
User-agent=IE...(浏览器的版本信息)
Accept=text/html,image/jpeg
(浏览器接收的文档类型)
正文在请求中常常是省略的
HTTP响应由 响应行、头部、正文组成
[响应行]
HTTP/1.1 200 OK
(响应状态有:200正常、404文件未找到、500服务器错误)
[头部]
Server=localhost
Content-length=1024(响应内容长度)
Content-type=text/html(响应内容类型)
[正文]
html文本
4.java.lang.Class类:用于获取对象的运行时信息
1)获取Class对象的方式:
a.Class cls=类名.class;
b.Class cls=对象.getClass();
c.Class cls=
Class.forName(String className)
参数className是一个完全限定类名
2)Class类的方法:
Method[] getMethods() - 返回方法数组
Constructor[] getConstructors() -
返回构造方法的数组
Object newInstance() - 创建一个新的实例