20155214 2016-2017-2 《Java程序设计》第10周学习总结

学号 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类及其子类完成的。

  • 混合密码系统
    20155214 2016-2017-2 《Java程序设计》第10周学习总结_第1张图片

20155214 2016-2017-2 《Java程序设计》第10周学习总结_第2张图片

重要的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

参考资料

  • Java学习笔记(第8版)

  • 《Java学习笔记(第8版)》学习指导
  • ...

你可能感兴趣的:(20155214 2016-2017-2 《Java程序设计》第10周学习总结)