20165316 第九周学习总结

20165316《Java程序设计》第九周学习总结

教材内容学习总结

URL类

  • URL 类是 java.net 包中的一个重要的类,使用 URL 创建对象的应用程序称为客户端程序。
  • 一个 URL 对象通常包含最基本的三部分信息:协议、地址和资源
  • URL 对象的构造方法:
public URL (String spec) throws MalformedURLException
public URL (String protocol, String host, String file) throws MalformedURLException
  • URL 对象调用 InputStream openStream() 方法可以返回一个输入流,该输入流指向 URL 对象所包含的资源。

InetAddress 类

  • java.net 包中的 InetAddress 类对象含有一个 Internet 主机地址的域名和 IP 地址。
  • 使用 InetAddress 类的静态方法 getByName(String s) 将一个域名或 IP 地址传递给该方法的参数 S,获得一个 InetAddress 对象,该对象格式为 <域名>/<IP 地址>
  • 获取域名和 IP 地址
public String getHostName()
public String getHostAddress()

套接字

  • 网络通信使用 IP 地址标识 Internet 上的计算机,使用端口号标识服务器上的进程(程序)。
  • 当两个程序需要通信时,他们可以通过使用 Socket 类建立套接字对象并链接在一起
  • Socket 的构造方法是 Socket(String host, int port) ,host 是服务器的 IP 地址,port 是一个端口号,可能发生 IOException 异常。
  • ServerSocket 的构造方法是 ServerSocket(int port),port 是一个端口号。
  • ServerSocket.accept() 方法返回一个和客户端 Socket 对象相连接的 Socket 对象。
  • getOutputStream() 获得的输出流将指向客户端 Socket 对象的输入流,getInputStream() 获得的输入流将指向客户端 Socket 对象的输入流。
  • ServerSocket 对象可以调用 setSoTimeout(int timeout) 方法设置超时值(ms),accept 阻塞时间过长触发 SocketTimeoutException。

UDP数据报

  • 基于UDP通信的基本模式是:
  1. 将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地。
  2. 接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容。
  • 发送数据包
  1. 用DatagramPacket的以下两个构造方法创建待发送的数据包:
DatagramPacket(byte data[],int length,InetAddtress address,int port)
DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
  1. DatagramSocket 类的不带参数的构造方法:
    DatagramSocket()
    创建一个对象,该对象负责发送数据包。例如:
DatagramSocket  mail_out=new DatagramSocket();
mail_out.send(data_pack);
  • 接收数据包
  1. 用 DatagramSocket 的另一个构造方法 DatagramSocket(int port) 创建一个对象,其中的参数必须和待接收的数据包的端口号相同。
  2. 对象 mail_in 使用方法 receive(DatagramPacket pack) 接受数据包。
  3. 用 DatagramPack 类的另外一个构造方法: DatagramPack(byte data[],int length) 创建一个数据包,用于接收数据包

广播数据报

  • D 类地址:224.0.0.0~224.255.255.255。
  • 要广播或接收广播的主机都必须加入到同一个 D 类地址。

教材学习中的问题和解决过程

  1. 不太熟悉计算机网络的架构,我们学习的编程大概在 OSI 协议中属于哪个层面?会话层还是表示层?
  2. IP 地址如此重要,为什么在计算机中还可以选择“自动”,计算机的 IP 地址会对程序运行产生影响吗?

代码托管

截图如下

现在才想起来的表格

代码行数 博客量 学习时间
5000 20 200
7061 11 109
posted @ 2018-04-28 18:00  treebeard  阅读(226)  评论(0编辑  收藏  举报