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_目标与基础复习的更多相关文章

  1. Java网络编程学习A轮_06_NIO入门

    参考资料: 老外写的教程,很适合入门:http://tutorials.jenkov.com/java-nio/index.html 上面教程的译文:http://ifeve.com/overview ...

  2. Java网络编程学习A轮_08_NIO的Reactor模型

    参考资料: 了解 Java NIO 的 Reactor 模型,大神 Doug Lea 的 PPT Scalable IO in Java 必看:http://gee.cs.oswego.edu/dl/ ...

  3. Java网络编程学习A轮_07_基于Buffer的Socket编程

    示例代码: https://github.com/gordonklg/study,socket module A. LineSeparate 基于 Buffer 实现逐行读取的 EchoServer ...

  4. Java网络编程学习A轮_05_Socket编程

    示例代码: https://github.com/gordonklg/study,socket module A. Socket 编程简单例子 最简单的 Socket 编程是通过回车/换行符,整行读取 ...

  5. Java网络编程学习A轮_03_抓包分析TCP四次挥手

    参考资料: http://www.jellythink.com/archives/705 示例代码: https://github.com/gordonklg/study,socket module ...

  6. Java网络编程学习A轮_04_TCP连接异常

    参考资料: https://huoding.com/2016/01/19/488 示例代码: https://github.com/gordonklg/study,socket module A. C ...

  7. Java网络编程学习A轮_02_抓包分析TCP三次握手过程

    参考资料: https://huoding.com/2013/11/21/299 https://hpbn.co/building-blocks-of-tcp/#three-way-handshake ...

  8. Java 网络编程学习总结

    新手一枚,Java学习中,把自己学习网络编程的知识总结一下,梳理下知识,方便日后查阅,高手莫进. 本文的主要内容: [1]    网络编程认识                [2]  TCP/IP编程 ...

  9. Java网络编程学习笔记

    Java网络编程,我们先来看下面这一张图: 由图可得:想要进行网络编程,首先是服务器端通过ServerSocket对某一个端口进行监听.通过accept来判断是否有客户端与其相连.若成功连上,则通过r ...

随机推荐

  1. db-mysql-001- 语句备份表

    1.备份表 CREATE TABLE AAbak( SELECT * FROM AA ); 2.两个已存在表导数据 INSERT INTO AAbak(c1,c2) SELECT c1,c2 FROM ...

  2. redis实现cache系统实践(六)

    1. 介绍 rails中就自带有cache功能,不过它默认是用文件来存储数据的.我们要改为使用redis来存储.而且我们也需要把sessions也存放到redis中.关于rails实现cache功能的 ...

  3. POJ3176:Cow Bowling(数字三角形问题)

    地址:http://poj.org/problem?id=3176 题目解析:没什么好说的,之前上课时老师讲过.从下往上找,每一个三角形的顶点可由两个角加上顶点的值 两种方式得到 ,用dp数组保存下最 ...

  4. #pragma 的用法

    它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征.依据定义,编译指示是机 ...

  5. Python 函数的使用小结

    函数的好处:提高代码复用性,简化代码,代码可扩展. 函数只有调用的时候才会被执行. 1.参数: 形参&实参:位置参数,属于必填参数:默认值参数,为非必填参数,没有传值时使用默认值:关键字参数: ...

  6. jenkins slave启动报错:hudson.util.IOException2: Slave JVM has terminated. Exit code=126

    添加mac slave节点报错如下:Expanded the channel window size to 4MB [11/07/14 19:11:54] [SSH] Starting slave p ...

  7. 工作笔记——dom属性巧用

    1.获取验证码 dom: <span class="btn btn-primary">获取验证码</span> js: /** *@Author Mona ...

  8. docker——数据管理

    生产环境中使用docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享.容器中管理数据主要有两种方式: 数据卷(Date Volumes):容器内数据直接映射到本地环境 数据 ...

  9. 安装和使用php的mcrypt扩展

    程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障.PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库和. 其中,Mcrypt扩展库可以实 ...

  10. obj比较

    <script> var obj1={name:'one',age:30}; var obj2={name:'one',age:30}; //比较两个字符串对象的[值]是否相等 Objec ...