课本知识总结

第十三章 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上的对象方法

遇到的问题及解决方法

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

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

代码托管

上周错题总结

解析:

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

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

20165330 2017-2018-2 《Java程序设计》第9周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. 【Android】15.4 例15-2--Notification基本用法

    分类:C#.Android.VS2015: 创建日期:2016-02-29 一.简介 上一节介绍了通知(Notification)相关的基本内容.这一节先用一个简单示例演示创建和发布本地通知的基本用法 ...

  2. JAVA类加载器概念与线程类加载器

    类加载器的功能:通过一个类的全限定名来获取描述此类的二进制字节流的过程 java的类加载器大致可以分为两类,一类是系统提供的,一类是由应用开发人员编写的.系统提供的类加载器有以下三种: 引导类加载器( ...

  3. na+mb与gcd

    蒜头君和花椰妹在玩一个游戏,他们在地上将 nn 颗石子排成一排,编号为 11 到 nn.开始时,蒜头君随机取出了 22 颗石子扔掉,假设蒜头君取出的 22 颗石子的编号为 aa, bb.游戏规则如下, ...

  4. trk压力测试工具(测试tcp)

    wrk 是web站点压力测试工具 针对tcp协议的压力测试工具,没有找到合适的. 自己写一个,起名 trk.

  5. js 開始时间,当前时间,结束时间的比較

    //開始时间不能小于当前时间 function startTimeIsBigThanTotay(startTime){ var startdate = new Date((startTime).rep ...

  6. boa 服务的启动

    使用 buildroot 添加 boa 服务后,通过命令 boa 不能启动该服务,就研究了一下boa.conf的配置. etc/boa/boa.conf # 更改user 和Group 为root. ...

  7. [shell]简单的shell提示和参数脚本

    该shell脚本有如下点: bash or dash case语句的写法 脚本help写法 参数是否为空的写法 算数运算的写法 #! /bin/bash case "$1" in ...

  8. Mysql研磨之设计索引原则

    1.搜索的索引列:最适合索引的列是出现在where子句中的列,或链接子句中指定的列,而不是出现在select关键词后的选择列表中的列 2.使用唯一索引:考虑列中值的分布.索引的列基础越大,索引的效果越 ...

  9. 常用gitignore模板

    作用是让临时文件和中间文件都不提交到代码库中 工程相关的.gitignore 放在根目录 常用 的有: Android.gitignore C++.gitignore C.gitignore CMak ...

  10. [Java] java调用wsdl接口

    前提: ① 已经提供了一个wsdl接口 ② 该接口能正常调用 步骤1:使用cxf的wsdl2java工具生成本地类 下载CXF:http://cxf.apache.org/download.html ...