zoukankan      html  css  js  c++  java
  • 20165306 第九周学习任务

    第九周学习任务

    教材学习内容总结

    13.1URL类

    • 使用URL创建对象的应用程序称为客户端程序。
    • 一个URL对象通常包含最基本的三部分信息:协议、地址、资源。
    • URL的构造方法:
      • public URL(String spec)throws MalformedURLExeption 用字符串初始化一个URL对象。
      • public URL(String protocol,String host,String file) throws MalformedURLException 该构造方法使用的协议、地址和资源分别由参赛protocol,host和file指定。
    • URL对象调用InputStream openStream()方法可以返回一个输入流,该输入流指向URL对象所包含的资源。通过该输入流可以将服务器上的资源信息读入到客户端。

    例子

    13.2InetAddress类

    • 地址的表示:域名、IP地址。
    • 获取Internet上主机的地址:可以使用InetAddress类的静态方法getByName(String s)将一个域名或IP地址传递给该方法的参数s,获得一个InetAddress对象,该对象含有主机地址的域名和IP地址。
    • 获取本地机的地址:可以使用InetAddress类的静态方法getLocalHost()获得一个InetAddress对象,该对象含有本地机器的域名或IP地址。

    例子

    13.3套接字

    • 客户端套接字:Socket的构造方法是Socket(String host,int port),参数host是服务器的IP地址,port是一个端口号。
    • ServerSocket对象与服务器端套接字:ServerSocket的构造方法是ServerSocket(int port),port是一个端口号。port必须和客户呼叫的端口号相同。
    • 当服务器的ServerSocket对象serverForClient建立后,就可以使用方法accept()客户端的套接字和服务器端的套接字连接起来。
    • 双方通信完毕后,套接字应使用close()方法关闭套接字连接。
    • 在套接字通信中,有两个基本原则:
      • 服务器应当启用一个专门的线程,在该线程中和客户的套接字建立连接。
      • 由于套接字的输入流在读取信息时可能发生阻塞,客户端和服务器端都需要在一个单独的线程中读取信息。

    例子

    13.4UDP数据报

    • 基于UDP通信的基本模式是:
      • 将数据打包,称为数据包,然后将数据包发往目的地。
      • 接收发来的数据包,然后查看数据包中的内容。

    13.5广播数据报

    • 要广播或接收广播的主机都必须加入到同一个D类地址。一个D类地址也称作一个组广播地址,D类地址并不代表某个特定主机的位置,一个具有A、B或C类地址的主机要广播数据或接收广播,都必须加入到同一个D类地址。

    例子BroadCast.java

    例子Receiver.java

    代码调试中的问题和解决过程

    • 问题:教材402页例子3运行时会出现 服务器已断开java.net.ConnectException:拒绝连接(Connection refused) 错误提示。

    例子13_3Client.java

    例子13_3Server.java

    • 解决:教材401页最下面一段中提到:“首先将例子3中服务器端的Server.java编译通过,并运行起来,等待客户的呼叫,然后运行客户端程序”。于是我按照教材的意思,Ctrl+Alt+t 打开了两个标签页,先编译运行Server.java,出现“等待客户呼叫”字样,然后在另一个标签页编译运行Client.java,结果运行成功。

    代码托管

    上周考试错题总结

    • 见教材361-362页,线程的基本状态有:新建、运行、中断(其中一个原因即为阻塞)、死亡

    • 这道题的B选项我依然认为是错误的。见教材360页,“如果main方法中没有创建其他的线程,那么当main方法执行完最后一个语句,即main方法返回时,JVM就会结束我们的Java应用程序。如果main方法中又创建了其他线程,那么JVM就要在主线程和其他线程之间轮流切换,保证每个线程都有机会使用CPU资源,main方法即使执行完最后的语句(主线程结束),JVM也不会结束Java应用程序,JVM要一直等到Java应用程序中的所有线程都结束之后,才结束Java应用程序。”

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积)
    目标 10000行 30篇
    第九周 846/7250 1/17
  • 相关阅读:
    Adaptive Cursor Sharing in Oracle Database 11g Release 1
    FORALL Support for NonConsecutive Indexes (Sparse Collections)
    设置会话TRACE的方法(一)
    Oracle 10g: UTL_MAIL
    Oracle :Parallel execution when table created.
    Server.MapPath
    Oracle10g :Nested Table Enhancements
    Asktom:Single Block IO Vs Multi Block IO
    Oracle10g新增DBMS_MONITOR包(一)
    设置会话TRACE的方法(二)
  • 原文地址:https://www.cnblogs.com/5306xyh/p/8971962.html
Copyright © 2011-2022 走看看