20175213 2018-2019-2 《Java程序设计》第11周学习总结
教材学习内容总结
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周学习总结的更多相关文章
- 201521123045 <java程序设计>第11周学习总结
201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问 ...
- 201521123027 <java程序设计>第11周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2.书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchro ...
- 2018面向对象程序设计(Java)第11周学习指导及要求
2018面向对象程序设计(Java)第11周学习指导及要求 (2018.11.8-2018.11.11) 学习目标 (1) 掌握Vetor.Stack.Hashtable三个类的用途及常用API: ...
- 面向对象程序设计(JAVA) 第11周学习指导及要求
2019面向对象程序设计(Java)第11周学习指导及要求 (2019.11.8-2018.11.11) 学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 2018-2019 2 20175230《Java程序设计》第九周学习总结
<Java程序设计>第九周学习总结 主要内容 MySQL数据库管理系统 1.下载 2.安装 启动MySQL数据库服务器 1.启动 2.root用户 MySQL客户端管理工具 建立连接 建立 ...
- 20175209 《Java程序设计》第九周学习总结
20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...
- 20175208 《Java程序设计》第九周学习总结
20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20175202 《Java程序设计》第九周学习总结
20175202 2018-2019-2 <Java程序设计>第九周学习总结 教材知识点总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称 ...
随机推荐
- JSP 定义行列数表单创建表格
1.添加行数 .列数提交表单 <!doctype html> <html> <head> <title>setTable-发送表单</title& ...
- HTMLTestRunner下载生成报告
HTMLTestRunner下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html,选择HTMLTestRunner.py下载 2.打开显示这 ...
- python self和cls的区别
1.self表示一个具体的实例本身.如果用了staticmethod,那么就可以无视这个self,将这个方法当成一个普通的函数使用. 2.cls表示这个类本身.
- struts框架的一些注意点
1.Struts.xml文件中<include file="">标签的运用 用法:此标签引用配置文件,Struts2提供了一个默认的struts.xml文件,当此配置文 ...
- HttpUrlConnection工具类
package com.ligotop.core.utils; import com.ligotop.core.exceptions.BusinessException; import java.io ...
- 自己做的html5手机站点
这个站点採用html5+css3+jquerymobile 仅仅开发了前台的功能,前台的界面比較美观,后端不方便放上,各位有空能够自己开发这个站点的界面有參考各个菜谱站点的页面的样式,可是又不一样,是 ...
- mysql处理重复数据仅保留一条记录
目的:去除(或删除)一个表里面手机号重复的数据,但是需要保留其中一个记录,换句话说,表里面手机号不为空的数据,一个手机有且只有一条记录 表结构: CREATE TABLE `account` ( `i ...
- 找回git rebase --skip消失的代码
1.git reflog操作,查看提交的历史记录,找到自己的提交 2.强制回退到上一次提交:git reset --hard 791a1fc 或者 git reset --hard HEAD@{2 ...
- 20180209-json&pickle&shelve模块
什么是序列化? 序列化就是把内存里的数据类型转成字符串,以使其能够存储到硬盘中或在网络中传输到远程,因为硬盘和网络传输时只接收bytes 用于序列化的两个模块 1. json,用于字符串和python ...
- PyInstaller库的使用
PyInstaller库的使用 PyInstaller库用于将已经写好的py程序,转换成可以跨平台的可执行文件 使用方式 发布主要借助cmd命令行来实现.在当前目录的powershell下,输入 py ...