教材学习内容总结

  • URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(Uniform Resource Locator),使用URL创建对象的应用程序称作客户端程序

  • URL对象最基本的信息:协议、地址、资源

  • 创建一个URL对象

public URL(String spec) throws MalformedURLException

public URL(String protocol, String host,String file) throws MalformedURLException

  • 读取URL中的资源:

URL对象调用 InputStream openStream()

返回一个输入流,该输入流指向URL对象所包含的资源

  • Internet上的主机的两种方式表示地址:域名、IP地址

  • 获取地址

    1. Internet上主机的地址:
    InetAddress类的静态方法`getByName(String s);` 获得一个InetAddress对象,该对象含有主机地址的域名和IP地址 2.获取本地机的地址:通过InetAddress类的静态方法 `getLocalHost()`
  • 套接字:IP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序)。端口号被规定为一个16位的0~65535之间的整数,端口号与IP地址的组合得出一个网络套接字。当两个程序需要通信时,它们可以通过使用Socket类建立套接字对象并连接在一起。

  • 建立连接到服务器的套接字对象:

try{  Socket mysocket=newSocket(“http://192.168.0.78”,1880);
}
catch(IOException e) {}
  • mysocket相关的方法:

    1.getInputStream()获得一个输入流
    
    2.getOutputStream()获得一个输出流

    3.用getInputStream()得到的输入流接到另一个DataInputStream数据流上

    4.用getOutputStream()得到的输出流接到另一个DataOutputStream数据流上

  • 服务器必须建立一个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

  • 请求和参数SocketAddress指定地址的套接字建立连接

  • 为了使用connect方法,可以使用SocketAddress的子类InetSocketAddress创建一个对象,InetSocketAddress的构造方法是:

InetSocketAddress(InetAddress addr, int port)

  • 基于UDP通信的基本模式是:

    1.将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地。

    2.接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容。
  • 用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);
  • 接受数据包:

    1.DatagramSocket的另一个构造方法DatagramSocket(int port)创建一个对象,其中的参数必须和待接收的数据包的端口号相同

    DatagramSocket mail_in=new DatagramSocket(端口号);

    2.然后对象mail_in使用方法`receive(DatagramPacket pack)`接受数据包。
    
    3.用 DatagramPack类的另外一个构造方法:`DatagramPack(byte data[],int length)`创建一个数据包,用于接收数据包
byte data[]=new byte[100];
int length=90;
DatagramPacket pack=new DatagramPacket(data,length);
mail_in.receive(pack);
  • 远程对象:

    驻留在(远程)服务器上的对象是客户要请求的对象,称作远程对象。

  • 代理的特点是它与远程对象实现了相同的接口。

  • 存根(Stub):一种特殊的字节码,并让这个存根产生的对象为作为远程对象的代理

  • Remote接口:RMI为了标识一个对象是远程对象,即可以被客户请求的对象,要求远程对象必须实现java.rmi包中的Remote接口

20175213 2018-2019-2 《Java程序设计》第11周学习总结的更多相关文章

  1. 201521123045 <java程序设计>第11周学习总结

    201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问 ...

  2. 201521123027 <java程序设计>第11周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2.书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchro ...

  3. 2018面向对象程序设计(Java)第11周学习指导及要求

    2018面向对象程序设计(Java)第11周学习指导及要求 (2018.11.8-2018.11.11)   学习目标 (1) 掌握Vetor.Stack.Hashtable三个类的用途及常用API: ...

  4. 面向对象程序设计(JAVA) 第11周学习指导及要求

    2019面向对象程序设计(Java)第11周学习指导及要求 (2019.11.8-2018.11.11)   学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接 ...

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

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  6. 2018-2019 2 20175230《Java程序设计》第九周学习总结

    <Java程序设计>第九周学习总结 主要内容 MySQL数据库管理系统 1.下载 2.安装 启动MySQL数据库服务器 1.启动 2.root用户 MySQL客户端管理工具 建立连接 建立 ...

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

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

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

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

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

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

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

    20175202 2018-2019-2 <Java程序设计>第九周学习总结 教材知识点总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称 ...

随机推荐

  1. 配置adb环境与简单命令

    adb命令具有安装卸载apk,拷贝推送文件,查看设备硬件信息,查看应用程序占用资源,在设备执行shell命令等 客户端:通过adb调用客户端 服务器server:运行后台,负责客户端与进程进行通信 守 ...

  2. Linux安装redis服务器和部署

    Linux安装redis和部署 第一步:下载安装包 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 访问https://redis. ...

  3. IDF-CTF-图片里的英语 writeup

    题目链接:http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=34 一恒河沙中有三千世界,一张图里也可以有很多东西. ...

  4. Lambda -语法使用,代码简化

    使用Lambda的方式实现线程 线程中()是run方法的(),可用来接受参数,格式: new Thread(()->{ System.out.println(Thread.currentThre ...

  5. java序列化的相关介绍

    1.什么是序列化?为什么要用序列化? 序列化就是将对象状态转换为可保持或传输的格式的过程.与序列化相对的就是反序列化,他将流转换成对象.这两个过程结合起来,可以轻松地存储和传输数据. 注意:对象序列化 ...

  6. Scala操作外部数据

    Scala操作外部数据: 1.操作文件 2.操作XML 3.操作MySQL 读取文件: object FileApp { def main(args: Array[String]): Unit = { ...

  7. Windows下Nginx的启动、停止、重启等命令

    Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍. 假设 ...

  8. Redis进行数据同步

    数据库中的数据一般都涉及到需要对数据进行备份的,这样可以保证数据的安全性,并且如果将一个主设备的数据同步到多个从设备上,允许用户访问数据时可以从多个从设备进行读取, 这样还可以缓解主设备的压力,Red ...

  9. Css中的!important

    转载自:https://www.cnblogs.com/cang12138/p/7326280.html !important为开发者提供了一个增加样式权重的方法,比直接在元素的 style 属性中设 ...

  10. 源码分析--HashSet(JDK1.8)

    HashSet为无序不可重复集合.底层几乎全部借助HashMap实现,比较简单.本篇简要分析一下HashSet源码. 首先是成员变量: 1.真正保存数据的HashMap实例 private trans ...