Java网络编程学习A轮_01_目标与基础复习
A. A轮目标
- 复习网络编程基础知识,重点学习下TCP三次握手四次挥手,以及可能引发的异常情况。
- 回顾 Socket 编程,好多年没写(chao)过相关代码了。
- 重学 NIO,以前学的基本忘光了,毕竟从来没在项目中用过。
- 学习 Netty,了解基本用法,写一个简单项目练手。
- 扫读 Netty 核心源码,了解其线程模型,重点学习 Netty 如何使用 NIO。
- 搜罗面试题,查漏补缺。
B. 基础知识
参考资料:《Java网络编程 第四版》
网际层(internet layer): 定义了数据位和字节如何组织为更大的分组,称为包,还定义了寻址机制(IP Address),不同计算机要按这个寻址机制查找对方。
网际协议(IP)是Java唯一理解的网络层协议。IPv4 与 IPv6 无法互操作。
在 IPv4 中,数据按包在网际层上传输,这些包称为数据报(datagram)。
传输层(transport layer): 负责确保各包以发送的顺序接收,并保证没有数据丢失或破坏。TCP 与 UDP。
URI:统一资源标识符(Uniform Resource Identifier)是采用一种特定语法标识一个资源的字符串。其语法为 模式:模式特定部分。模式特定部分的语法很多采用 //authority/path?query,例如 https://www.bucunzai.com/huanjue?zhishang=250。
典型的 URI 是由 ASCII 字母、数字及部分符号(- _ . ! ~)组成,其它字符要用 % 转义,其后是该字符按 UTF-8 编码的十六进制码。
Java网络编程学习A轮_01_目标与基础复习的更多相关文章
- Java网络编程学习A轮_06_NIO入门
参考资料: 老外写的教程,很适合入门:http://tutorials.jenkov.com/java-nio/index.html 上面教程的译文:http://ifeve.com/overview ...
- Java网络编程学习A轮_08_NIO的Reactor模型
参考资料: 了解 Java NIO 的 Reactor 模型,大神 Doug Lea 的 PPT Scalable IO in Java 必看:http://gee.cs.oswego.edu/dl/ ...
- Java网络编程学习A轮_07_基于Buffer的Socket编程
示例代码: https://github.com/gordonklg/study,socket module A. LineSeparate 基于 Buffer 实现逐行读取的 EchoServer ...
- Java网络编程学习A轮_05_Socket编程
示例代码: https://github.com/gordonklg/study,socket module A. Socket 编程简单例子 最简单的 Socket 编程是通过回车/换行符,整行读取 ...
- Java网络编程学习A轮_03_抓包分析TCP四次挥手
参考资料: http://www.jellythink.com/archives/705 示例代码: https://github.com/gordonklg/study,socket module ...
- Java网络编程学习A轮_04_TCP连接异常
参考资料: https://huoding.com/2016/01/19/488 示例代码: https://github.com/gordonklg/study,socket module A. C ...
- Java网络编程学习A轮_02_抓包分析TCP三次握手过程
参考资料: https://huoding.com/2013/11/21/299 https://hpbn.co/building-blocks-of-tcp/#three-way-handshake ...
- Java 网络编程学习总结
新手一枚,Java学习中,把自己学习网络编程的知识总结一下,梳理下知识,方便日后查阅,高手莫进. 本文的主要内容: [1] 网络编程认识 [2] TCP/IP编程 ...
- Java网络编程学习笔记
Java网络编程,我们先来看下面这一张图: 由图可得:想要进行网络编程,首先是服务器端通过ServerSocket对某一个端口进行监听.通过accept来判断是否有客户端与其相连.若成功连上,则通过r ...
随机推荐
- 003-maven简介
1.1简介 Maven,只是的积累,专家或内行 Maven是优秀的构建工具,依赖管理工具,项目信息管理工具,跨平台.提供了中央仓库,自动下载构件. 1.通过坐标系统定位每一个构件(artifact), ...
- PHP 基础篇 - PHP 错误级别详解
一.前言 最近经常看到工作 2 年左右的童鞋写的代码也会出现以静态方法的形式调用非静态方法,这是个 Deprecated 级别的语法错误,代码里不应该出现的.对方很郁闷,说:为什么我的环境可以正常运行 ...
- 编译安装MariaDB-10.0.21
一.源码编译安装gcc-5.1.0 1.下载gcc源码包 Download (HTTP): http://ftpmirror.gnu.org/gcc/gcc-5.2.0/gcc-5.2.0.tar.b ...
- Mvc ModelState.isValid为false时,检查时那个字段不符合规则的代码
List<string> sb = new List<string>(); //获取所有错误的Key List<string> Keys = ModelState. ...
- java反射子之获取方法信息(二)
一.获取方法 1.方法作用. 2. 二.获取方法信息.(修饰符,返回值,方法名称,参数列表,抛出的异常). ############################################## ...
- 最好的 Xcode 自动生成版本号技术
在 bloglovin ,我们使用自动生成版本号来设置Xcode,使当前的版本号为在Git活跃的分支上 的提交数.它一直正常工作着,但我们的技术也不是一帆风顺的. 糟糕的老方法 我们使用的技术是来自一 ...
- $python日期和时间的处理
总结一下python中对日期和时间的常用处理方法. 准备 import time,datetime 常用操作 输出当前的日期时间 方式一: now = time.localtime() print ' ...
- Laravel 学习记录
1.当配置 根目录没有指向/public 时 去掉www.blog.im/public 后的文件 需要把 public 文件夹里的..htaccess 文件放到 项目根目录.server.ph ...
- 20145316 《Java程序设计》第8周学习总结
20145316 <Java程序设计>第8周学习总结 教材学习内容总结 NIO&NIO2 NIO使用频道(channel)衔接数据节点,对数据区的标记提供了clear(),rewi ...
- Ubuntu16.04 Xmind安装
Ubuntu16.04 Xmind安装: 官网下载:直接下载不用注册: 到下载目录选择下载文件右键,提取到此处(为登录用户权限):在终端采用root权限解压为root权限(unzip xmind-8- ...