第九周学习总结

教材内容学习

第十三章 Java 网络编程

  • URL 类

URL 类是 java.net 包中的一个重要的类,使用URL创建对象的应用程序称为客户端程序。

一个 URL 对象通常包含最基本的三部分信息:协议、地址和资源。

协议必须是 URL 对象所在的 Java 虚拟机支持的协议,地址必须是能连接的有效 IP 地址或域名,资源可以是主机上的任何一个文件。

  • URL 的构造方法

URL 类通常使用如下的构造方法创建一个 URL 对象: public URL(String spec)throws MalformedURLException

该构造方法使用字符串初始化一个 URL 对象,例如:

try { URL url = new URL("http://www.google.com");
}
catch (MalformedURLException e) {
  System.out.println ("Bad URL:"+url);
}

注:上述 url 对象中,协议是 http,包含的地址是 www.google.com,包含的资源是默认的资源(主页)。

另一个常用的构造方法: public URL(String protocol, String host,String file) throws MalformedURLException ,该构造方法使用的协议、地址和资源分别由参数 protocol、host 和 file 指定。

  • 读取URL中的资源

URL 对象调用 InputStream openStream() 方法可以返回一个输入流,该输入流指向 URL 对象所包含的资源。

通过该输入流可以将服务器上的资源信息读入到客户端。

  • InetAddress 类

Internet上的主机有两种方式表示地址:
1.域名
例如 www.tsinghua.edu.cn
2.IP地址
例如 202.108.35.210
java.net包中的InetAddress类对象含有一个Internet主机地址的域名和IP地址,例如 www.sina.com.cn/202.108.37.40 。

  • 套接字

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

  • 客户端套接字

客户端的程序使用Socket类建立负责连接到服务器的套接字对象。

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

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();
}
catch(IOException e){}

使用方法 accept() 将客户的套接字和服务器端的套接字连接起来:

try{  Socket sc= serverForClient .accept();
}
catch(IOException e){}

所谓“接收”客户的套接字连接就是 accept() 方法会返回一个和客户端 Socket 对象相连接的 Socket 对象。

  • 使用多线程技术

为了防止堵塞线程,服务器端收到一个客户的套接字后,就应该启动一个专门为该客户服务的线程。

  • UDP数据报

基于 UDP 的通信和基于 TCP 的通信不同,基于 UDP 的信息传递更快,但不提供可靠性保证。

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

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

2.接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容。

  • 广播数据报

广播数据报涉及到地址和端口。

广播数据报是一种较新的技术,要广播或接收广播的主机都必须加入到同一个 D 类地址。

  • Java 远程调用

1. 远程对象

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

2. 代理与存根(Stub)

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

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

3. Remote接口

RMI为了标识一个对象是远程对象,即可以被客户请求的对象,要求远程对象必须实现java.rmi包中的Remote接口,也就是说只有实现该接口的类的实例才被RMI认为是一个远

程对象。

代码托管

代码提交的过程:

代码量统计

上周考试错题总结

20165234 《Java程序设计》第九周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第九周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什 ...

  2. 20145220java程序设计第九周学习总结

    20145220java程序设计第九周学习总结 教材学习内容总结 JBDC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商对接口直接操作,开发人员无须接触底层数据可驱动程序的差异 ...

  3. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  4. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  5. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  6. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  7. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  8. 马凯军201771010116《面向对象与程序设计Java》第九周学习总结

    一.理论知识部分 异常.日志.断言和调试 1.异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行. 2.Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. 3 ...

  9. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  10. 《Java》第九周学习总结

    下载mysql 选择mysql的管理软件 idea可以直接连接 然后用库运行程序,但是没有截图,,因为想在navicat上试试,可惜速度太慢了 打开idea又很慢,所以明天再更新

随机推荐

  1. Codeforce 886 Технокубок 2018 - Отборочный Раунд 3 C. Petya and Catacombs(结论题)

    A very brave explorer Petya once decided to explore Paris catacombs. Since Petya is not really exper ...

  2. Luogu P2743 [USACO5.1]乐曲主题Musical Themes

    链接 \(Click\) \(Here\) 人生第一道后缀数组的题目.首先要对输入的串进行差分处理,差分后长度为(\(n - 1\))的相同子段就是原串中长度为\(n\)的相同(可变调)子段.求出来\ ...

  3. MYSQL二进制5.7.安装

    一.下载MySQL二进制软件包 下载连接:MYSQ安装包下载 官网MySQL有四个版本:GA版.DMR版.RC版.Beta版.一般生产和测试环境使用GA版(常规可用的版本,经过bug修复测试) 二.安 ...

  4. 根据指定的key,将二维数组的value转换为string,适用于mysql的in查询

    function array_unique_join($arr,$param){ $utm_source_arr = array_unique(array_column($arr,$param)); ...

  5. C++: 带参数回调函数和不带参数的回调函数;

    在C++中,回调函数的应用比较广泛且重要. 通过传递函数指针到其他地方,能够实现远程回调的作用,能够实现远程调用而不需要事件触发信号或者其他机制来实现,方便而快捷: 首先,回调函数有两种形式:  静态 ...

  6. CentOS 7.0下使用yum安装MySQL

    CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1 ...

  7. java io系列12之 BufferedInputStream(缓冲输入流)的认知、源码和示例

    本章内容包括3个部分:BufferedInputStream介绍,BufferedInputStream源码,以及BufferedInputStream使用示例. 转载请注明出处:http://www ...

  8. JAVA核心技术I---JAVA基础知识(不可变对象和字符串)

    一:不可变对象 不可变对象(Immutable Object) –一旦创建,这个对象(状态/值)不能被更改了–其内在的成员变量的值就不能修改了. –典型的不可变对象 • 八个基本型别的包装类的对象 • ...

  9. Git(创建与合并分支)

    在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...

  10. Linux基础(一)系统api与库函数的关系

    1. 系统api与库函数的关系 man 2 open 1.1 open 1.2 read/write 实现cat功能 #include <stdio.h> #include <uni ...