20145104张家明 《Java程序设计》第10周学习总结
20145104张家明 《Java程序设计》第10周学习总结
教材学习内容总结
网络编程
网络编程就是两个或多个设备(程序)之间的数据交换。
识别网络上的每个设备:①IP地址②域名(Domain Name)。一个IP地址可以对应多个域名,一个域名只能对应一个IP地址。
DNS服务器(域名解析):在实际传输数据以前需要将域名转换为IP地址。
端口:让一个计算机可以同时运行多个网络程序。端口的号码必须位于0-65535之间,每个端口唯一的对应一个网络程序,一个网络程序可以使用多个端口。
C/S结构:网络编程的结构被称作客户端/服务器结构,也叫做Client/Server结构。
B/S结构:使用浏览器作为客户端的结构被称作浏览器/服务器结构,也叫做Browser/Server结构。B/S结构其实也就是一种特殊的C/S结构。
P2P程序:P2P程序中既包含客户端程序,也包含服务器端程序,是一种特殊的程序。
协议(Protocol):在实际进行数据交换时,为了让接收端理解该数据,计算机比较笨,什么都不懂的,那么就需要规定该数据的格式,这个数据的格式就是协议。那么如何来编写协议格式呢?答案是随意。只要按照这种协议格式能够生成唯一的编码,按照该编码可以唯一的解析出发送数据的内容即可。也正因为各个网络程序之间协议格式的不同,所以才导致了客户端程序都是专用的结构。
在现有的网络中,网络通讯的方式主要有两种: ①TCP(传输控制协议)方式 ②UDP(用户数据报协议)方式
客户端的编程主要由三个步骤实现:
1、建立网络连接:在建立网络连接时需要指定连接到的服务器的IP地址和端口号。(出现重复)
2、交换数据:交换数据严格按照请求响应模型进行。
3、关闭网络连接。
- 服务器端的编程是由四个步骤实现,依次是:
1、监听端口:这个端口就是服务器端开放给客户端的端口,服务器端程序运行的本地计算机的IP地址就是服务器
端程序的IP地址。
2、 获得连接:服务器端和客户端也通过该连接进行数据交换。一般获得连接时,需要开启专门的线程处理该连
接,每个连接都由独立的线程实现。
3、 交换数据。
4、 关闭连接。
InetAddress类:该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。
TCP方式的网络编程实现时,以java.net.Socket类代表客户端连接,以java.net.ServerSocket类代表服务器端连接。由于高度的封装,程序员实际编程时,只需要指定IP地址和端口号码就可以建立连接了。一方面简化了Java语言网络编程的难度,另外也使得Java语言进行网络底层系统编程很困难,具体点说,Java语言无法实现底层的网络嗅探以及获得IP包结构等信息。
实现服务器端监听的代码为:
ServerSocket ss = new ServerSocket(10000);
实现UDP方式的编程,包含客户端网络编程和服务器端网络编程,主要由两个类实现,分别是:
1、DatagramSocket:实现“网络连接”,包括客户端网络连接和服务器端网络连接。DatagramSocket实现的
就是发送数据时的发射器,以及接收数据时的监听器的角色。类比于TCP中的网络连接,该类既可以用于实现客户
端连接,也可以用于实现服务器端连接。
2、DatagramPacket:实现对于网络中传输的数据封装,该类的对象代表网络中交换的数据。在UDP方式的网络
编程中,无论是需要发送的数据还是需要接收的数据,都必须被处理成DatagramPacket类型的对象,该对象中
包含发送到的地址、发送到的端口号以及发送的内容等。和TCP方式的网络传输相比,IO编程在UDP方式的网络编
程中变得不是必须的内容,结构也要比TCP方式的网络编程简单一些。
代码托管
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第六周 | 894/1926 | 2/7 | 30/175 | 这周进行了第一次的实验 |
| 第七周 | 254/2180 | 2/9 | 21/196 | 第二次java实验 |
| 第八周 | 260/2440 | 2/11 | 20/216 | 第三次java实验 |
| 第九周 | 380/2820 | 2/13 | 25/241 | 第四次java实验 |
| 第十周 | 80/2900 | 2/15 | 23/264 | 第五次java实验 |
参考资料
20145104张家明 《Java程序设计》第10周学习总结的更多相关文章
- 20145302张薇 《Java程序设计》第二周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...
- 20145302张薇《Java程序设计》第九周学习总结
20145302 <Java程序设计>第九周学习总结 教材学习内容总结 第十六周 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Jav ...
- 20145104张家明 《Java程序设计》第3周学习总结
20145104张家明 <Java程序设计>第4周学习总结 教材学习内容总结 第四章 认识对象 4.1 类与对象 4.1.1 定义类 类定义时使用class关键词,建立实例要用new关键词 ...
- 20145104张家明 《Java程序设计》第5周学习总结
20145104张家明 <Java程序设计>第5周学习总结 教材学习内容总结 第八章(概括为一下内容) 1.如果父类异常对象在子类异常前被捕捉,则catch子类异常对象的区块将永远不会被执 ...
- 20145104张家明 《Java程序设计》第6周学习总结
20145104张家明 <Java程序设计>第6周学习总结 教材学习内容总结 第10章与11章总结 标准输入输出 System.in: 标准输入,默认关联到键盘(终端输入) System. ...
- 20145104张家明 《Java程序设计》第四次实验设计
20145104张家明 <Java程序设计>第四次实验设计 这第四次实验报告 我们开始着手安卓了 在电脑上安装了安卓虚拟机
- 20145104张家明 《Java程序设计》第9周学习总结
20145104张家明 <Java程序设计>第9周学习总结 教材学习内容总结 第16章 -撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. -JDBC目的:让Java ...
- 20145104张家明 《Java程序设计》第8周学习总结
20145104张家明 <Java程序设计>第8周学习总结 教材学习内容总结 第15章 -java.util.logging包提供了日志功能相关类与接口,不必额外配置日志组件,就可以在标准 ...
- 20145104张家明 《Java程序设计》第7周学习总结
20145104张家明 <Java程序设计>第7周学习总结 教材学习内容总结 第13章 简单认识时间和日期 -时间的度量:GMT.UT.TAI.UTC.Unix.epoch. -UTC:保 ...
随机推荐
- HDU 3091 - Necklace - [状压DP]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3091 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- angular2新建的项目上传github
前提1.git配置好,参见博文 git常用操作 2.angular2安装配置好,这个网上有很多教程,就不多说了,参见angular2快速起步 需要注意的是,大部分问题都是网络问题. 3.新建一个ng项 ...
- 学习grunt四解决yo webapp生成的是gulpfile而不是gruntfile问题
虽然gulp慢慢取代了gruntfile,但是还有大部分的github源码保留gruntfile,另外我们开发项目也不是全用gulp,也是用grunt. 但是yeoman上generator-weba ...
- 【Python】唯品会购买商品
操作过程:唯品会进入之后,搜索商品,浏览网页,略掉不能选择的尺寸,选择之后,点击商品选择数量的加号,然后加入购物车. 实现代码如下: # coding=utf-8 from selenium impo ...
- python就业班-淘宝-目录.txt
卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python就业班-淘宝-目录.txt│ ├─01 网络编程│ ├─01-基本概念│ │ 01-网络通信概述 ...
- dedecms网站迁移时记得将安装目录放空 附迁移的正确方法
这段时间在赶一些新项目,我们建站一般都在本地服务器搭建起来,测试得差不多了才传到网上,这样对蜘蛛也相对友好一些,要不然改来改去变化太大给搜索引擎的第一印象很不好.但是由于本地环境和服务器环境还是有一些 ...
- URAL 1517 Freedom of Choice (后缀数组 输出两个串最长公共子串)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/whyorwhnt/article/details/34075603 题意:给出两个串的长度(一样长) ...
- 简单mysql常用命令
在命令行 输入 mysql -uroot -p123456 (-u账号 -p密码)登入mysql服务器 1.设置mysql密码set password for 'root'@'localhost' = ...
- ubuntu开发环境下eclipse的alt+/自动补全功能不能用
解决方法:windows ---preferences---General---keys ,把在搜索框中搜Word Completion,把该快捷键unbind,然后给content assist 绑 ...
- RNN实现字符级语言模型 - 恐龙岛(自己写RNN前向后向版本+keras版本)
问题描述:样本为所有恐龙名字,为了构建字符级语言模型来生成新的名称,你的模型将学习不同的名称模式,并随机生成新的名字. 在这里你将学习到: 如何存储文本数据以便使用rnn进行处理. 如何合成数据,通过 ...