摘要: 本文紧接上文所述,讲解socket编程和HTTP编程。 一、socket编程 在上一节我们介绍了网络体系的五层模型,介绍了每层模型所遵守的协议。TCP/IP是一个协议族,它由网络层的IP协议和传输层的TCP协议组成,其中网络层建立了主机到主机的通信,传输层建立了端口到端口的通信。只要确定主机和端口, 阅读全文
posted @ 2019-03-07 16:11 网鱼 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 网络编程分为上下两节。上节介绍网络概述,下节介绍socket和HTTP编程。 一、网络概述 1.1 网络协议 网络协议就是为网络数据交换而制定的规则、约定与标准。 1.2 分层模型 为了降低网络设计的复杂性,绝大多数网络都组织成一堆相互叠加的层。每一层都建立在下一层的基础之上,且每一层的目的都是向上 阅读全文
posted @ 2019-03-07 16:07 网鱼 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 本节紧接上节内容,介绍JSON处理和对文本的几种操作。 一、JSON处理 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,方便人们阅读和编写,也方便程序地解析和生成。虽然JSON是JavaScript的子集,但其格式完全独立于编程语言,表现为键/值对集合的 阅读全文
posted @ 2019-03-07 16:05 网鱼 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 常用工具包分为两节内容。本节介绍格式化输入输出和对字符串处理的常用工具包和函数;下节介绍JSON处理和对文本的几种操作。 fmt包提供了格式化的输入和输出的操作。 1.1 常见的函数 主要介绍fmt包中常用的Println、Printf和Scanf函数,如表1所示。 1.2 格式化符号 格式化符号如 阅读全文
posted @ 2019-03-07 16:04 网鱼 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 本节紧接上一节的内容,主要介绍channel中的有缓冲channel、单方向的channel、定时器,以及select语句在channel中的应用。 3.4 有缓冲的channel 3.4.1 概述 有缓冲的通道(buffered channel)是一种在被接收前能存储一个或者多个值的通道。这种类型 阅读全文
posted @ 2019-03-07 16:02 网鱼 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 并发编程分为上、下两节。这一节包括了并发编程的概述、goroutine和channel的部分内容。 一、概述 1.1 并行和并发并行(parallel):在多个处理器上同时执行多条指令,如图1所示。 并发(concurrency):同一时刻只有一条指令在执行,但多个进程指令被快速轮换地执行,使得宏观 阅读全文
posted @ 2019-03-07 15:40 网鱼 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 任何编程语言的学习都要考虑错误处理。早期的语言,比如C语言中的errno,不是语言规范的一部分,通常只作为一种编程范式存在。但C++语言从语言层面上增加错误处理的支持,比如异常的概念和try-catch关键字的引入。而Go语言最大的亮点之一就是拥有漂亮的错误处理规范。 一、error error是G 阅读全文
posted @ 2019-03-07 15:30 网鱼 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 多态是面向对象的三大基本特性之一。多态是指对于不同的实例,同样的操作可能会有不同的表现形式。例如加法操作,如果操作的数据是数,那么它对两个数进行求和;如果操作的数据是字符串,那么它将连接两个字符串。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通 阅读全文
posted @ 2019-03-07 15:25 网鱼 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 继承也是面向对象的三大基本特性之一。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。通过继承,不仅可以让某个类型的对象拥有属于自己的数据结构和操作,还会自动拥有父类的数据结构和操作。这使得现有的类在无需重新编写原来类的情况下对这些功能进行了扩展,很好地解决了代 阅读全文
posted @ 2019-03-07 15:18 网鱼 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 封装是面向对象三大特性之一。封装的好处,一个是增加代码内聚性,就是将数据和对数据的操作封装在一起,提高可复用性和可维护性;还有就是信息隐藏,就是把不该暴露的信息藏起来,通过访问控制来隐藏数据,不被外界干扰。也就是说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体。Go语言没有封装这个名词, 阅读全文
posted @ 2019-03-07 15:10 网鱼 阅读(129) 评论(0) 推荐(0) 编辑