【JavaSE】网络编程 基础知识
1.JDK中的网络类
通过java.net包中的类,java程序能够使用TCP或UDP协议在互联网上进行通讯Java通过扩展已有的流式输入/输出接口和增加在网络上建立输入/输出对象特性这两个方法支持TCP/IP
Java支持TCP和UDP协议族。TCP用于网络的可靠的流式输入/输出。UDP支持更简单的、有效的、快速的、点对点的数据报模式
2.创建URL
URL(Uniform Resource Locator)是统一资源定位符的简称,它表示Internet上某一资源的地址。通过URL我们可以访问Internet上的各种网络资源。一个URL包括两个主要部分:
-协议标识符:HTTP,FTP,File等
-资源名字:主机名,文件名,端口号,引用
例如:
http://java.sun.com:80/docs/books/tutorial/index.html#DOWN
创建URL:
URL url = new URL("<链接>");
3. 使用URL访问网上资源
为获得URL的实际比特或内容信息,用它的openConnection()方法从它创建一个URLConnection对象
URLConnection urlc= url.openConnection();
与调用URL对象相关,它返回一个URLConnection对象。它可能引发IOException异常
4. URLConnection对象建立时表示连接已经打开,然后就可以调用URLConnection对象的方法来打开一些输入/输出流来进行数据交互,示例如下:
URL url = new URL("<链接>");
URLConnection conn = nrl.openConnection();
InputStream is = conn.getInputStream();
OutputStream os = new FileOutputStraem("c:\\infoq.txt");
byte[] buffer = new byte[2048];
int length = 0;
while(-1 != (length = is.read(buffer , 0 , buffer.length)))
{
os.write(buffer, 0 ,length);
}
os.close();
is.close();
5.InetAddress类
无论你是在打电话、发送邮件或建立与Internet的连接,地址是基础。InetAddress类用来封装数字式的IP地址和该地址的域名。你通过一个IP主机名与这个类发生作用,IP主机名比它的IP地址用起来更简便更容易理解。
InetAddress类内部隐藏了地址数字。
getLocalHost()仅返回象征本地主机的InetAddress对象。
getByName()方法返回一个传给它的主机名的InetAddress。
如果这些方法不能解析主机名,它们会引发一个UnknownHostException异常。
在Internet上,用一个名称来代表多个机器是常有的事。getAllByName()工厂方法返回代表由一个特殊名称分解的所有地址的InetAddress类数组。在不能把名称分解成至少一个地址时,它将会引发一个UnknownHostException异常。
示例:
InetAddress address = InetAddress.getLocalHost();
System.out.println(address);
address = InetAddress.getByName("<域名>");
System.out.println(address);
6.套接字(Socket)
什么是Socket?
答:Socket是连接运行在网络上的两个程序间的双向通讯的端点。
使用Socket进行网络通信的过程
①服务器程序将一个套接字绑定到一个特定的端口,并通过此套接字等待和监听客户的连接请求。
②客户程序根据服务器所在的主机名和端口号发出连接请求。
③如果一切正常,服务器接受连接请求。并获得一个新的绑定到不同端口地址的套接字。
④客户的服务器通过读、写套接字进行通讯。
使用ServerSocket和Socket实现服务器端和客户端的Socket通信(TCP通信)
7.使用无连接的数据报(UDP)进行通信
什么是Datagram?
-数据报是网上传输的独立数据包,数据报是否能正确地到达目的地,到达的时间,顺序,内容的正确性均没有保障。
java中使用Datagram与DatagramPacket类
DatagramSocket类利用UDP协议来实现客户与服务器的Socket
send():发送数据报
receive():接收数据报
注:以上全部类容总结来自于北京圣思园Java教学视频,总结只是为了方便自己查阅&和大家交流=.=
本文固定链接:http://blog.youkuaiyun.com/fyfmfof/article/details/32339957