20165316 第九周学习总结

Posted treebeard123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 地址
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


以上是关于20165316 第九周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

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

201621123062《java程序设计》第九周作业总结

201621123002《java程序设计》第九周学习总结

第九周学习总结

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

20165318 2017-2018-2 《Java程序设计》第九周学习总结