20165324 《Java程序设计》第九周学习总结
学号 20165324 《Java程序设计》第九周学习总结
教材学习内容总结
第十三章 Java网络编程
URL类
- 使用URL创建对象的应用程序称为客户端
- 一个URL对象封装一个具体资源的引用
- 一个URL对象包含最基本的三部分信息:协议,地址和资源。
- URL类的构造方法:
- 该构造方法使用字符串初始化一个URL对象
URL url=new URL("http://www.google.com"); public URL(String protocol,String host,String file)throws MalformedURLException,该构造方法使用的协议、地址、资源分别由参数protocol、host、file指定。
- 该构造方法使用字符串初始化一个URL对象
InetAddress类
- 地址的表示:
- 域名
- IP地址:java.net包中InetAddress类对象含有一个Internet主机地址的域名和IP地址。
- 获取地址:
- 获取Internet上主机的地址:使用InetAddress类的静态方法
getByName(String s)将一个域名或一个IP地址传给该方法的参数s,获得一个InetAddress对象,该对象含有主机地址的域名和IP地址。 - 此外还有两个实例方法:
public String getHostName(),获取对象所含的域名;public String getHostAddress(),获取对象所含的IP地址。 - 获取本地机的地址:使用InetAddress类的静态方法getLocalHost()获得一个InetAddress对象,该对象含有本地机器的域名和IP地址。
- 获取Internet上主机的地址:使用InetAddress类的静态方法
套接字
- 概述:IP地址标识Internet上的计算机,端口号标识服务器上的进程(程序)。两个程序需要通信时,可以通过使用Socket类建立套接字对象并连接在一起。
- 客户端套接字:客户端程序使用Socket类负责建立连接到服务器的套接字对象。构造方法为:
Socket(String host,int port),host为服务器的IP地址,port是一个端口号。使用try-catch语句建立连接。 - ServerSocket对象与服务器端套接字:
- 为了能使客户连接到服务器,服务器必须建立一个ServerSocket对象,该对象通过将客户端的套接字对象和服务器端的一个套接字对象连接起来。构造方法为:
ServerSocket(int port),port是一个端口号,port必须和客户呼叫的端口号相同。
- 为了能使客户连接到服务器,服务器必须建立一个ServerSocket对象,该对象通过将客户端的套接字对象和服务器端的一个套接字对象连接起来。构造方法为:
try {
ServerSocket severForClient = new ServerSocket(2333);
}
catch (IOException e) {}
2. 当服务器的ServerSocket对象serverForClient建立后,就可以使用方法accept()将客服端的套接字和服务器端的套接字连接起来。
try {
Socket sc = serverForCilent.accept();
}
catch (IOException e) {}
3. 接受客户的套接字连接是指severForClient(服务器端的ServerSocket对象)调用accept()方法会返回一个和客户端Socket对象相连接的Socket对象sc,sc驻留在服务器端。这个Socket对象sc调用getOutputStream()获得的输出流将指向客服端Socket对象的输入流;对象sc调用getInputStream()获得的输入流将指向客服端Socket对象的输出流。
4. 建立连接后,服务器端的套接字对象调用getInetAddress()方法可以获取一个InetAddress对象,该对象含有客服端的IP和域名,客服端同理。
基于UDP通信的基本模式
- 将数据打包,称为数据包(好比将信件装入信封一样),然后将数据包发往目的地。
- 接受别人发来的数据包(好比接收信封一样),然后查看数据包中的内容。
- 接受数据包:DatagramSocket的另一个构造方法DatagramSocket(int port) 创建一个对象,其中的参数必须和待接收的数据包的端口号相同
- DatagramSocket mail_in=new DatagramSocket(端口号);
然后对象mail_in使用方法receive(DatagramPacket pack)接受数据包。 - 用 DatagramPack类的另外一个构造方法:
DatagramPack(byte data[],int length)创建一个数据包,用于接收数据包
代码托管



学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 203/203 | 4/4 | 15/15 | |
| 第二周 | 326/529 | 2/6 | 12/27 | |
| 第三周 | 1000/1500 | 2/8 | 20/47 | |
| 第四周 | 800/2300 | 3/11 | 20/67 | |
| 第五周 | 500/2800 | 2/13 | 18/85 | |
| 第六周 | 900/3700 | 2/15 | 15/100 | |
| 第七周 | 1100/4800 | 3/18 | 15/115 | |
| 第八周 | 1700/6500 | 1/19 | 18/133 | |
| 第九周 | 1400/7900 | 2/21 | 22/155 |
参考资料
20165324 《Java程序设计》第九周学习总结的更多相关文章
- 201521123027 <java程序设计>第九周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什 ...
- 20145220java程序设计第九周学习总结
20145220java程序设计第九周学习总结 教材学习内容总结 JBDC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商对接口直接操作,开发人员无须接触底层数据可驱动程序的差异 ...
- 201771010134杨其菊《面向对象程序设计java》第九周学习总结
第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...
- 201521044152<java程序设计>第一周学习总结
本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
- 马凯军201771010116《面向对象与程序设计Java》第九周学习总结
一.理论知识部分 异常.日志.断言和调试 1.异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行. 2.Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. 3 ...
- 201521123063 JAVA程序设计 第二周学习总结
1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...
- 《Java》第九周学习总结
下载mysql 选择mysql的管理软件 idea可以直接连接 然后用库运行程序,但是没有截图,,因为想在navicat上试试,可惜速度太慢了 打开idea又很慢,所以明天再更新
随机推荐
- HBase和ZooKeeper
HBase和ZooKeeper HBase内置有ZooKeeper,也可以使用外部ZooKeeper. 让HBase使用一个已有的不被HBase托管的Zookeep集群,需要设置 conf/hbase ...
- 遍历一个Set的方法只有一个:迭代器(interator)
Set-HashSet实现类: 遍历一个Set的方法只有一个:迭代器(interator). HashSet中元素是无序的(这个无序指的是数据的添加顺序和后来的排列顺序不同),而且元素不可重复. 在O ...
- web 前端 转盘界面
http://www.cnblogs.com/arfeizhang/p/turntable.html "如果有个做转盘的需求,你准备怎么做?设计师只会提供一个转盘的图片,其余都需要你完成,不 ...
- Swift AVFoundation 二维码扫描和生成
项目最终不须要支持iOS6了(泪崩),在二维码扫描这一块,可以全然的放弃ZXing库,改用系统的AVFoundation了,拿swift写了个Demo,效果例如以下: github地址:点这里 有关A ...
- 关于js中遍历总结
1.for循环 var arr = []; for (var i = 0; i < arr.length; i++) { if (条件1) return; if (条件2) break; if ...
- 注解-->Spring配置
有必要对JDK 5.0新增的注解(Annotation)技术进行简单的学习,因为Spring 支持@AspectJ,而@AspectJ本身就是基于JDK 5.0的注解技术.所以学习JDK 5.0的注解 ...
- 数据驱动ddt+excel数据读取
我们可以将测试数据用excel存储,再用ddt去传入,不过我们需要安装对应的库,因为python是无法操作excel的 1.安装第三方库xlrd 2.创建一个excel表格,将需要测试的数据保存 3. ...
- JBPM4 经常使用表结构及其说明
首先我想说.这不一篇原创博文. 这里设置成原创.主要是为了分享,由于它对于jbpm的刚開始学习的人,真的值得一看.原作者的博文地址并没有查到,我是在还有一位转载此文的博主那儿获得的.地址在这儿. 本文 ...
- sql语句优化 (转)
性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化. 为了获得稳定的执行性能,SQL语句越简单越好.对复杂的SQL语句,要设 ...
- php如何互换一个数组的首尾元素 中间不变 首尾互换
群里有人提出一个问题 如何互换一个数组的首尾元素 中间不变 首尾互换 代码如下: <?php $array=array(1,2,3,4,5,6,7,8,9,10); $first=array_s ...