• 20165330 2017-2018-2 《Java程序设计》第9周学习总结


    课本知识总结

    第十三章 Java网络编程

    1. URL类
    • URL类是java.net包中的一个重要的类
    • 一个URL对象包含的三个基本信息:协议、地址和资源
      • 协议:必须是URL对象所在的Java虚拟机支持的协议,常用的有:Http、Ftp、File协议,由参数protocol指定
      • 地址:必须是能连接的有效IP地址或域名,由参数host指定
      • 资源:可以是主机上的任何一个文件,由参数file指定
    • 构造方法
      • public URL (String spec) throws MalformedURLException
      • public URL(String protocol,String host,String file) throws MalformedURLException
    • 调用InputStream openStream()方法返回一个输入流
    1. InetAddress类
    • Internet上主机表示地址的两种方式
      • 域名
      • IP地址
    • 获取地址
      • 获取Internet上主机地址:getByName(String s)
      • 获取本地机地址:getLocalHost()
    1. 套接字
    • 是基于TCP协议的网络通信
    • 客户端套接字
      • 对象建立方法:使用Socket类
      • Socket构造方法:Socket(String host,int port)
    • ServerSocket对象与服务器端套接字
      • 构造方法:ServerSocket(int port)
    • 使用方法accept()将客户端的套接字和服务器端的套接字连接起来
    try{ Socket sc = serverForClient.accept();
    }
    catch(IOException e) {}
    
    • 通信完毕后,套接字使用close()方法关闭套接字连接
    • 多线程技术
      • 服务器端收到一个客户端的套接字时,就会启动一个专门为该客户服务的线程
    • 套接字通信基本原则
      • 服务器应当启动一个专门的线程,在该线程中和客户的套接字建立连接
      • 由于套接字的输入流在读取信息时可能发生阻塞,客户端和服务器端都需要在一个单独的线程中读取信息
    1. UPD数据报
    • 基于UPD通信的基本模式
      • 将数据打包发往目的地
      • 接收发来的数据包并查看内容
    • 发送数据包
      • 打包:使用DatagramPacket类
    DatagramPacket(byte data[],int length,InetAddtress address,int port)
    
    DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
    
    • 发送:使用构造方法DatagramSocket()创建一个对象
    • 接收数据包
      • 使用构造方法DatagramSocket(int port)创建一个对象
      • 使用方法receive(DatagramPacket pack)接收数据包
    1. 广播数据报
    • A类地址:a<128,则b.c.d表示主机
    • B类地址:128<=a<192,则a.b表示网络地址,c.d表示主机地址
    • C类地址:a>=192,a.b.c表示网络地址,d表示主机地址
    • D类地址:224.0.0.0~224.255.255.255是保留地址
    • 要广播或接收广播的主机都必须加入到同一个D类地址
    1. RMI是一种分布式技术,使用RMI可以让一个虚拟机(JVM)上的应用程序请求调用位于网络上另一处JVM上的对象方法

    遇到的问题及解决方法

    • 在运行本章第一个代码时出现image

    解决方法:将两个程序分别打包在同一文件夹下,通过输入javac -encoding gbk Example13_1.java,然后成功编译并运行。

    代码托管

    image

    上周错题总结

    1. image

    解析:image

    1. image

    解析:当main方法中没有创建其他的线程,main方法返回时,JVM就会结束Java应用程序;当main方法中创建了其他线程,要等到所有线程都结束,JVM才会结束Java应用程序

    1. image

    解析:C项:先前的实体会成为“垃圾”,并且不会被垃圾收集器收集。D项:当线程进入死亡状态后,线程就还可以调用isAlive()方法,并且返回值为false。

  • 相关阅读:
    VS2005 中关于“LC.EXE已退出,代码为 1”的错误解决方法。
    由于目标机器积极拒绝,无法连接。
    What is Android?
    利用批处理文件和任务计划实现Oracle数据库的自动备份
    就差了一点点....
    由Login.aspx引发编译器错误的解决方法
    都是补丁惹的祸...
    终于结束了
    GIS当然可以很酷
    rar.exe命令行参数与示例
  • 原文地址:https://www.cnblogs.com/besty-zyx/p/8970956.html
Copyright © 2020-2023  润新知