20165227 2018-4 《Java程序设计》第九周学习总结
教材学习内容总结
第十三章
URL类:
- 通常包含三部分信息:协议、地址、资源
- 协议必须是URL对象所在的Java虚拟机支持的协议;地址必须是能连接的有效的IP地址或域名;资源可以是主机上的任何一个文件
- 调用
InputStream openStream()
:返回一个输入流 - URL类通常使用
public URL (String spec) throws MalformedURLException
或者是public URL (String protocol,String host,String flie) throws MalformedURLException
InetAddress类:
- 获取Internet上主机的地址:使用InetAddress类的静态方法
getByName(Strings)
- 获取本地机的地址:使用InetAddress类的静态方法
getLocalHost()
套接字:
- 通过
Socket类
建立套接字对象并连接在一起,其构造方法是Socket(String host,int port)
,host
是服务器的IP地址,port
是一个端口号 - 使用
ServerSocket对象
让客户成功连接到服务器,其构造方法是ServerSocket(int port)
,port
是一个端口号 - 使用
accept()
将客户端的套接字和服务器端的套接字连接起来 - 两个基本原则:服务器应当启动一个专门的线程;客户端和服务器端都需要在一个单独的线程中读取信息
UDP数据报:
- 用
DatagramPacket类
将数据打包,为数据包 DatagramPacket(byte data[],int length,InetAddtress address,int port)
:含有date数组指定的数据;地址是address,端口号是port的主机上DatagramPacket(byte data[],int offset,int length,InetAddtress address,int port)
:包含数组data中从offset开始后的length个字节,地址和端口同上- 用不带参数的构造方法
DatagramSocket()
创建一个对象,该对象负责发送数据包 - 用
DatagramSocket mail_out=new DatagramSocket();
创建对象,然后对象mail_out
使用方法receive(DatagramPacket pack)
接受数据包
Remote接口:要求远程对象必须实现java.rmi
包中的Remote接口,其接口中没有方法,仅仅起到一个标识作用
教材学习中的问题和解决过程
- 问题1:为什么建立ServerSocket对象时候容易发生IOException异常?
- 问题1解决方案:因为可能会出现设置的端口被占用的情况,这时候就会出现异常
- 问题2:套接字到底是如何定义的?
- 问题2解决方案:网上查找再结合各种资料了解到:套接字
代码调试中的问题和解决过程
- 问题1:在建立套接字对象的时候,显示出现IOException的异常
- 问题1解决方案:查询书籍知识点发现,应该用
try{ Socket clientSocket = new Socket("http://192.168.0.78",2010);
}
catch(IOException e){}
代码托管
上周考试错题总结
- 上一周的课下测试满分,所以没有错题
其他(感悟、思考等,可选)
这一周的Java学习同上一周的学习的难度来说稍微好些,但是新的概念较多,需要花费更多的时间去记忆消化,在学习新知识的同时还不能忽略之前所学习的知识,需要时常复习才行!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 210/210 | 1/1 | 20/20 | |
第二周 | 240/450 | 1/2 | 18/38 | |
第三周 | 496/946 | 1/3 | 22/60 | |
第四周 | 624/1570 | 1/4 | 30/90 | |
第五周 | 843/2413 | 1/5 | 24/114 | |
第六周 | 733/3146 | 1/6 | 20/134 | |
第七周 | 628/3774 | 1/7 | 21/155 | |
第八周 | 1103/4877 | 1/8 | 30/185 | |
第八周 | 434/5284 | 1/9 | 32/217 |