第九周学习总结
教材内容学习
第十三章 Java 网络编程
-
URL 类
URL 类是 java.net 包中的一个重要的类,使用URL创建对象的应用程序称为客户端程序。
一个 URL 对象通常包含最基本的三部分信息:协议、地址和资源。
协议必须是 URL 对象所在的 Java 虚拟机支持的协议,地址必须是能连接的有效 IP 地址或域名,资源可以是主机上的任何一个文件。
-
URL 的构造方法
URL 类通常使用如下的构造方法创建一个 URL 对象: public URL(String spec)throws MalformedURLException
该构造方法使用字符串初始化一个 URL 对象,例如:
try { URL url = new URL("http://www.google.com");
}
catch (MalformedURLException e) {
System.out.println ("Bad URL:"+url);
}
注:上述 url 对象中,协议是 http,包含的地址是 www.google.com,包含的资源是默认的资源(主页)。
另一个常用的构造方法: public URL(String protocol, String host,String file) throws MalformedURLException ,该构造方法使用的协议、地址和资源分别由参数 protocol、host 和 file 指定。
-
读取URL中的资源
URL 对象调用 InputStream openStream() 方法可以返回一个输入流,该输入流指向 URL 对象所包含的资源。
通过该输入流可以将服务器上的资源信息读入到客户端。
-
InetAddress 类
Internet上的主机有两种方式表示地址:
1.域名
例如 www.tsinghua.edu.cn
2.IP地址
例如 202.108.35.210
java.net包中的InetAddress类对象含有一个Internet主机地址的域名和IP地址,例如 www.sina.com.cn/202.108.37.40 。
-
套接字
IP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序)。端口号被规定为一个16位的0~65535之间的整数。
当两个程序需要通信时,它们可以通过使用Socket类建立套接字对象并连接在一起(端口号与IP地址的组合得出一个网络套接字)。
-
客户端套接字
客户端的程序使用Socket类建立负责连接到服务器的套接字对象。
建立连接到服务器的套接字对象:
try{ Socket mysocket=new Socket(“http://192.168.0.78”,1880);
}
catch(IOException e){ }
与mysocket相关的方法
getInputStream() :获得一个输入流
getOutputStream() :获得一个输出流
用getInputStream() :得到的输入流接到另一个DataInputStream数据流上
用getOutputStream() :得到的输出流接到另一个DataOutputStream数据流上
-
ServerSocket 对象与服务器端套接字
服务器必须建立一个 ServerSocket 对象,该对象通过将客户端的套接字对象和服务器端的一个套接字对象连接起来,从而达到连接的目的。
建立 ServerSocket 对象:
try{ ServerSocket serverForClient =new ServerSocket(2010);
}
catch(IOException e){}
使用方法 accept() 将客户的套接字和服务器端的套接字连接起来:
try{ Socket sc= serverForClient .accept();
}
catch(IOException e){}
所谓“接收”客户的套接字连接就是 accept() 方法会返回一个和客户端 Socket 对象相连接的 Socket 对象。
-
使用多线程技术
为了防止堵塞线程,服务器端收到一个客户的套接字后,就应该启动一个专门为该客户服务的线程。
-
UDP数据报
基于 UDP 的通信和基于 TCP 的通信不同,基于 UDP 的信息传递更快,但不提供可靠性保证。
基于 UDP 通信的基本模式是:
1.将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地。
2.接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容。
-
广播数据报
广播数据报涉及到地址和端口。
广播数据报是一种较新的技术,要广播或接收广播的主机都必须加入到同一个 D 类地址。
-
Java 远程调用
1. 远程对象
驻留在(远程)服务器上的对象是客户要请求的对象,称作远程对象。
2. 代理与存根(Stub)
代理的特点是它与远程对象实现了相同的接口。
存根(Stub):一种特殊的字节码,并让这个存根产生的对象为作为远程对象的代理。
3. Remote接口
RMI为了标识一个对象是远程对象,即可以被客户请求的对象,要求远程对象必须实现java.rmi包中的Remote接口,也就是说只有实现该接口的类的实例才被RMI认为是一个远
程对象。
代码托管
代码提交的过程:
代码量统计
上周考试错题总结
来源:oschina
链接:https://my.oschina.net/u/4303403/blog/4141072