学号20155311 2016-2017-2 《Java程序设计》第10周学习总结
2017-04-27 10:41
274 查看
学号20155311 2016-2017-2 《Java程序设计》第10周学习总结
教材学习内容总结
网络编程
网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据计算机网络 路由器和交换机组成了核心的计算机网络,计算机只是这个网络上的节点以及控制等,通过光纤、网线等连接将设备连接起来,从而形成了一张巨大的计算机网络。
IP地址与端口
网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址在计算机网络中,现在命名IP地址的规定是IPv4协议,该协议规定每个IP地址由4个0-255之间的数字组成
一个IP地址可以对应多个域名,一个域名只能对应一个IP地址。
当用户在浏览器输入域名时,浏览器首先请求DNS服务器,将域名转换为IP地址,然后将转换后的IP地址反馈给浏览器,然后再进行实际的数据传输。
为了让一个计算机可以同时运行多个网络程序,就引入了另外一个概念——端口(port) 前台总机的电话号码就相当于IP地址,而每个员工的分机号就相当于端口
网络编程的两种模型
网络编程中的两种程序就分别是客户端和服务器端客户端/服务器结构,也叫做Client/Server结构,简称C/S结构。
使用C/S结 构的程序,在开发时需要分别开发客户端和服务器端 在实际维护时,也需要维护专门的客户端和服务器端,维护的压力比较大。 使用浏览器作为客户端的结构被称作浏览器/服务器结构,也叫做Browser/Server结构,简称为B/S结构。 P2P程序是一种特殊的程序,应该一个P2P程序中既包含客户端程序,也包含服务器端程序
IP协议(Protocol)
在实际的网络程序编程中,最麻烦的内容不是数据的发送和接收,因为这个功能在几乎所有的程序语言中都提供了封装好的API进行调用,最麻烦的内容就是协议的设计以及协议的生产和解析,这个才是网络编程中最核心的内容。 网络协议就是一种格式上的约定,在进行设计时一般遵循“简单、通用、容易解析”的原则进行。网络通讯方式
TCP(传输控制协议)方式UDP(用户数据报协议)方式
使用TCP方式进行网络通讯时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发该数据。
使用UDP方式进行网络通讯时,不需要建立专门的虚拟连接,传输也不是很可靠,如果发送失败则客户端无法获得。
网络编程步骤
客户端网络编程的步骤:1、建立网络连接 2、交换数据 3、关闭网络连接服务器端网络编程步骤:1、监听端口 2、获得连接 3、交换数据 4、关闭连接
Socket socket1 = new Socket(“192.168.205.1”,10000);
Socket socket2 = new Socket(“www.baidu.com”,80);
OutputStream os = socket1.getOutputStream(); //获得输出流
InputStream is = socket1.getInputStream(); //获得输入流
socket1.close();
socket2.close();
Java网络编程
TCP与UDP方式编程
TCP方式 一个基础的网络类——InetAddress类。该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。在Java语言中,对于TCP方式的网络编程提供了良好的支持,在实际实现时,以java.net.Socket类代表客户端连接,以java.net.ServerSocket类代表服务器端连接。UDP方式UDP方式的网络编程也在Java语言中获得了良好的支持,由于其在传输数据的过程中不需要建立专用的连接等特点,所以在Java API中设计的实现结构和TCP方式不太一样。当然,需要使用的类还是包含在java.net包中。
服务器端支持多个客户端同时工作
一个服务器端一般都需要同时为多个客户端提供通讯,如果需要同时支持多个客户端,则必须使用前面介绍的线程的概念。简单来说,也就是当服务器端接收到一个连接时,启动一个专门的线程处理和该客户端的通讯。UDP(User Datagram Protocol),中文意思是用户数据报协议,方式类似于发短信息,是一种物美价廉的通讯方式,使用该种方式无需建立专用的虚拟连接,由于无需建立专用的连接,所以对于服务器的压力要比TCP小很多
在Java API中,实现UDP方式的编程,包含客户端网络编程和服务器端网络编程,主要由两个类实现 DatagramSocket类实现“网络连接”,包括客户端网络连接和服务器端网络连接。 DatagramPacket类实现对于网络中传输的数据封装,也就是说,该类的对象代表网络中交换的数据
教材学习中的问题和解决过程
代码调试中的问题和解决过程
代码托管
(statistics.sh脚本的运行结果截图)上周考试错题总结
正则表达式 zo* 匹配()A .z
B .zo
C .zoo
D .zooooooooooooooooooooooooooo
正确答案: ABCD
我的答案: A C
分析:* 可以是0次
结对及互评
评分标准
正确使用Markdown语法(加1分):不使用Markdown不加分
有语法错误的不加分(链接打不开,表格不对,列表不正确...)
排版混乱的不加分
模板中的要素齐全(加1分)
缺少“教材学习中的问题和解决过程”的不加分
缺少“代码调试中的问题和解决过程”的不加分
代码托管不能打开的不加分
缺少“结对及互评”的不能打开的不加分
缺少“上周考试错题总结”的不能加分
缺少“进度条”的不能加分
缺少“参考资料”的不能加分
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
本周有效代码超过300分行的(加2分)
一周提交次数少于20次的不加分
其他加分:
周五前发博客的加1分
感想,体会不假大空的加1分
排版精美的加一分
进度条中记录学习时间与改进情况的加1分
有动手写新代码的加1分
课后选择题有验证的加1分
代码Commit Message规范的加1分
错题学习深入的加1分
点评认真,能指出博客和代码中的问题的加1分
结对学习情况真实可信的加1分
扣分:
有抄袭的扣至0分
代码作弊的扣至0分
迟交作业的扣至0分
点评模板:
博客中值得学习的或问题:xxx
xxx
...
代码中值得学习的或问题:
xxx
xxx
...
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
参考示例
点评过的同学博客和代码
本周结对学习情况结对同学学号1
结对照片
结对学习内容
XXXX
XXXX
...
上周博客互评情况(只要链接,具体点评放相应博客下)
20155308
20155227
20155333
20155213
20155228
其他(感悟、思考等,可选)
这周的知识比较难以理解,许多没有实际操作过的,看解释很难看懂,需要在今后的实践过程中,遇到相关知识再回过头去重新审视,相信会有新的体会学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |
相关文章推荐
- 学号20155311 2016-2017-2 《Java程序设计》第9周学习总结
- 学号20155311 2016-2017-2 《Java程序设计》第6周学习总结
- 学号20155311 2016-2017-2 《Java程序设计》第4周学习总结
- 学号20155311 2016-2017-2 《Java程序设计》第5周学习总结
- 学号20155311 2016-2017-2 《Java程序设计》第7周学习总结
- 20155202 2016-2017-2 《Java程序设计》第10周学习总结
- 20155226 2016-2017-2 《Java程序设计》第10周学习总结
- 20155219 2016-2017-2 《Java程序设计》第10周学习总结
- 20155204 2016-2017-2 《Java程序设计》第10周学习总结
- 20155228 2016-2017-2 《Java程序设计》第10周学习总结
- # 20155224 2016-2017-2 《Java程序设计》第10周学习总结
- 20155233 2016-2017-2 《Java程序设计》第10周学习总结
- 20155231 2016-2017-2 《Java程序设计》第10周学习总结
- 20155323 2016-2017-2 《Java程序设计》第10周学习总结
- 20155205 2016-2017-2 《Java程序设计》第10周学习总结
- 学号20155308 2016-2017-2 《Java程序设计》第7周学习总结
- 20145202马超 2016-2017-2 《Java程序设计》第10周学习总结
- 20155217 2016-2017-2 《Java程序设计》第10周学习总结
- 20155215 2016-2017-2 《Java程序设计》第10周学习总结
- 20155210 2016-2017-2 《Java程序设计》第10周学习总结