zoukankan      html  css  js  c++  java
  • 20165231 2017-2018-2 《Java程序设计》第9周学习总结

    教材学习内容总结

    第十三章

    URL类

    URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(Uniform Resource Locator),使用URL创建对象的应用程序称作客户端程序。
    一个URL对象通常包含最基本的三部分信息:协议、地址、资源。

    URL的构造方法

    URL类通常使用如下的构造方法创建一个URL对象:

    • public URL(String spec) throws MalformedURLException
    • public URL(String protocol, String host,String file) throws MalformedURLException
    读取URL中的资源

    URL对象调用:
    InputStream openStream()
    方法可以返回一个输入流,该输入流指向URL对象所包含的资源。通过该输入流可以将服务器上的资源读入到客户端。

    InetAdress类

    Internet上的主机有两种方式表示地址:
    • 域名
      例如 www.tsinghua.edu.cn
    • IP地址
      例如 202.108.35.210
      java.net包中的InetAddress类对象含有一个Internet主机地址的域名和IP地址,例如 www.sina.com.cn/202.108.37.40
    获取地址
    • 获取Internet上主机的地址:
      可以使用InetAddress类的静态方法getByName(String s);
      获得一个InetAddress对象,该对象含有主机地址的域名和IP地址,该对象用如下格式表示它包含的信息:
      www.sina.com.cn/202.108.37.40
    • 获取本地机的地址:
      我们可以使用InetAddress类的静态方法getLocalHost()获得一个InetAddress对象,该对象含有本地机的域名和IP地址。
    套接字

    IP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序)。端口号被规定为一个16位的0~65535之间的整数。
    当两个程序需要通信时,它们可以通过使用Socket类建立套接字对象并连接在一起(端口号与IP地址的组合得出一个网络套接字)。

    客户端套接字:
    建立连接到服务器的套接字对象:

    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对象。

    使用多线程技术

    使用Socket类不带参数的构造方法Socket()创建一个套接字对象,该对象需调用
    public void connect(SocketAddress endpoint) throws IOException
    为了使用connect方法,可以使用SocketAddress的子类InetSocketAddress创建一个对象,InetSocketAddress的构造方法是:
    InetSocketAddress(InetAddress addr, int port)

    发送数据包
    • 用DatagramPacket类将数据打包,即用DatagramPacket类创建一个对象,称为数据包。
      用DatagramPacket的以下两个构造方法创建待发送的数据包:
    DatagramPacket(byte data[],int length,InetAddtress address,int port)
    DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
    
    • 用DatagramSocket类的不带参数的构造方法:DatagramSocket()创建一个对象,该对象负责发送数据包。例如:
    DatagramSocket  mail_out=new DatagramSocket();
    mail_out.send(data_pack);
    

    代码托管

    image

    上周考试错题总结

    • 错题1
      对于下列程序,哪个叙述是正确的? B
      A . JVM认为这个应用程序共有两个线程。
      B . JVM认为这个应用程序只有一个主线程。
      C . JVM认为这个应用程序只有一个thread线程。
      D . 程序有编译错误,无法运行。

    • 错题2
      下列关于守护线程的说法,正确的是 A B C D
      A . thread.setDaemon(true)必须在thread.start()之前设置,否则会报IllegalThreadStateException异常。
      B . 如果用户线程已经全部退出运行,只剩下守护线程存在,那么虚拟机也就退出了。
      C . 将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现 。
      D . 守护线程应该永远不去访问固有资源,如文件、数据库,因为它会在任何时候甚至在一个操作的中间发生中断。

    感悟

    现在的java已经进阶到了网络编程了,需要花很多时间去理解一些从未遇到过的的问题和操作。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 1/4 10/10
    第二周 300/500 1/5 10/20
    第三周 800/1300 1/6 20/40
    第四周 700/2000 2/8 20/60
    第五周 1100/ 3100 2/10 30 /90
    第六周 1100 /4200 1/ 11 15 /105
    第七周 500/4700 3/14 20/125
    第八周 800/5500 2/16 20/145
    第九周 1100/6600 2/18 20/165
    第十周
    • 计划学习时间:20小时

    • 实际学习时间:20小时

    参考资料

  • 相关阅读:
    df、du、fdisk 规格严格
    云计算 规格严格
    RARLinux 规格严格
    CentOS 规格严格
    NetBeans 时事通讯(刊号 # 22 Aug 18, 2008)
    Single SignOn Integrating Liferay With CAS Server
    Single SignOn Integrating Liferay With CAS Server
    Liferay SSO CAS 集成
    NetBeans 时事通讯(刊号 # 21 Aug 13, 2008 )
    Liferay SSO CAS 集成
  • 原文地址:https://www.cnblogs.com/Yhooyon/p/8964859.html
Copyright © 2011-2022 走看看