您的位置:首页 > 理论基础 > 计算机网络

【JavaSE】网络编程 基础知识

2014-06-19 20:22 316 查看
【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.csdn.net/fyfmfof/article/details/32339957
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javase java 网络编程