学号 2016-2017-2 《Java程序设计》第10周学习总结
教材学习内容总结
- 掌握Java Socket编程
- 理解混合密码系统
- 掌握Java 密码技术相关API的使用
教材学习中的问题和解决过程
- 关于Socket
网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。
Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。
- Java Socket
以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net
包中。
ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。
对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。
不管是Socket还是ServerSocket它们的工作都是通过SocketImpl
类及其子类完成的。
- 混合密码系统
重要的Socket API
java.net.Socket
继承于java.lang.Object
,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK-1.3文档。Accept
方法用于产生阻塞,直到接受到一个连接,并且返回一个客户端的Socket对象实例。阻塞是一个术语,它使程序运行暂时停留在这个地方,直到一个会话产生,然后程序继续;通常阻塞是由循环产生的。getInputStream
方法获得网络连接输入,同时返回一个InputStream对象实例。getOutputStream
方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。
代码调试中的问题和解决过程
Socket(InetAddress address, int port);
Socket(InetAddress address, int port, boolean stream);
Socket(String host, int prot);
Socket(String host, int prot, boolean stream);
Socket(SocketImpl impl)
Socket(String host, int port, InetAddress localAddr, int localPort)
Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
ServerSocket(int port);
ServerSocket(int port, int backlog);
ServerSocket(int port, int backlog, InetAddress bindAddr)
其中address、host和port分别是双向连接中另一方的IP地址、主机名和端口号,stream指明socket是流socket还是数据报socket,localPort表示本地主机的端口号,localAddr和 bindAddr是本地机器的地址(ServerSocket的主机地址),impl是socket的父类,既可以用来创建serverSocket又可 以用来创建Socket。count则表示服务端所能支持的最大连接数。
例如:
Socket client = new Socket("127.0.01.", 80);
ServerSocket server = new ServerSocket(80);
代码托管
http://git.oschina.net/bestiisjava2017/besti155214_JavaProgammer/
上周考试错题总结
结对及互评
- 20155237
点评过的同学博客和代码
-
本周结对学习情况
-
上周博客互评情况(只要链接,具体点评放相应博客下)
-
20155314刘子健博客链接:http://www.cnblogs.com/crazymosquito/p/6754055.html
-
20155328张钰清博客链接:http://www.cnblogs.com/zyqzyq/p/6752141.html
-
20155329胡佩伦博客链接:
-
20155203杜可欣博客链接:http://www.cnblogs.com/xhwh/p/6750350.html
-
20155208徐子涵博客链接:
其他(感悟、思考等,可选)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 38/100 | 1/2 | 15/15 | |
第二周 | 294/332 | 3/4 | 30/45 | |
第三周 | 763/1073 | 2/6 | 32/77 | |
第四周 | 1202/2277 | 1/7 | 29/106 | |
第五周 | 930/3206 | 2/9 | 32/138 | |
第六周 | 642/3848 | 1/10 | 25/161 | |
第七周 | 249/4097 | 2/12 | 22/181 | |
第八周 | 457/4352 | 1/13 | 27/181 | |
第九周 | 338/4689 | 2/15 | 23/204 | |
第十周 | 482/5171 | 1/16 | 20/223 |
N「次数」 | Y「计划学习时间 | X「实际学习时间」 | X-/+X/N | |
---|---|---|---|---|
第一周 | 0 | 18 | 15 | ∞ |
第二周 | 1 | 33 | 30 | 0 |
第三周 | 2 | 35 | 32 | 16-48 |
第四周 | 3 | 35 | 29 | 25.4-44.6 |
第五周 | 4 | 32 | 27 | 25.25-38.75 |
第六周 | 5 | 28 | 25 | 23-33 |
第七周 | 6 | 24 | 22 | 16.7-23.3 |
第八周 | 7 | 30 | 27 | 26.2-33.8 |
第九周 | 8 | 24 | 23 | 20.7-27.3 |
第十周 | 9 | 24 | 20 | 21.8-26.2 |