URL
•一个URL 包括两个主要部分:
–协议标识符:HTTP,FTP,File等
–资源名字:主机名,文件名,端口号,引用
•为获得URL的实际比特或内容信息,用它的openConnection( )方法从它创建一个URLConnection对象,如下:
•url.openConnection()
•openConnection( ) 有下面的常用形式:
•URLConnection openConnection( )
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.infoq.com");
URLConnection conn = url.openConnection();//打开连接
InputStream is = conn.getInputStream();//获得输入流(也可以直接获得输入流getStream()方法)
OutputStream os = new FileOutputStream("d:/infoq.txt");
byte[] buffer = new byte[2048];
int length = 0;
while(-1 != (length =is.read(buffer, 0, buffer.length))){
os.write(buffer, 0, length);
}
is.close();
os.close();
}
InetAddress 类
InetAddress 类用来封装我们前面讨论的数字式的IP地址和该地址的域名
•工厂方法
–InetAddress 类没有明显的构造函数。为生成一个InetAddress对象,必须运用一个可用的工厂方法。
–工厂方法(factory method)仅是
一个类中静态方法返回一个该类实例的约定。对于InetAddress,三个方法 getLocalHost( )、getByName( )以及getAllByName( )可以用来创建InetAddress的实例
Socket(套接字)
Socket是连接运行在网络上的两个程序间的双向通讯的端点
使用Socket进行网络通信的过程
服务器程序将一个套接字绑定到一个特定的端口,并通过此套接字等待和监听客户的连接请求。
客户程序根据服务器程序所在的主机名和端口号发出连接请求。
如果一切正常,服务器接受连接请求。并获得一个新的绑定到不同端口地址的套接字。
客户和服务器通过读、写套接字进行通讯。
使用TCP/IP的套接字进行通信步骤
1) 建立Socket连接
2) 获得输入/输出流
3)读/写数据
4) 关闭输入/输出流
5) 关闭Socket
•实现服务器支持多客户机通信
•
服务器端的程序需要为每一个与客户机连接的socket建立一个线程,来解决同时通信的问题。
UDP通信
•什么是Datagram?
–数据报是网上传输的独立数据包 ,数据报是否能正确地到达目的地,到达的时间,顺序,内容的正确性均没有保障。
•java中使用Datagram与DatagramPacket类
•DatagramSocket类利用UDP协议来实现客户与服务器的Socket.
•send():发送数据报
•receive(): 接收数据报
注:此文档为学习圣思园风中叶教程结合自身学习所记录。