Unix下网络编程概述

这部分我要学习的是Unix下的网络编程,参照的书籍是W. Richard. Stevens的《Unix网络编程》卷一和卷二,因为自己如今从事的工做是java后台开发,对客户端-服务器的这种通讯并不陌生。java

学习Unix下网络编程开发不是之后要从事这方面工做,是想学一下计算机网络知识,包括其中各类概念的厘清,和熟悉C编程、网络编程。编程

网络编程说白了很简单,就是两个对象(机器、应用程序)之间相互通讯。通讯是一个信息交换的过程,像咱们人与人之间交流说话就是一种通讯过程,由于几乎天天都会与人交流,致使咱们都太熟悉了这个过程。服务器

如今要将两台机器之间进行通讯的话,须要肯定通讯的协议。协议是一个大的概念,这里先不去细讲。网络

能够设想两台机器之间通讯是个啥状况:异步

1. 机器也有语言,最根本的就是使用0-1这种二进制数字了,无论是信息的存储仍是指令都是若干二进制字符。不过二进制单位过小,比较方便的仍是使用字节。async

2. 机器A发送了不少个字节给机器B,B得知道如何解析这段字节学习

感受写的太细。。。spa

客户和服务器经过某个应用协议进行数据交换。计算机网络

如今Unix网络通讯关注的点就在于客户和服务器进行接触的这块。设计

程序之间相互通讯之间首先要肯定的是通讯协议(protocol)

服务器能够想象成移动营业厅的服务厅,从早上上班到晚上下班开始就一直有人等着有人来,而后给别人提供服务,放到Unix中就是守护进程(daemon)

 

借用移动营业厅的场景来讲,通常都是咱们主动去到营业厅,请求别人服务,好比充话费、改套餐等,不多有移动营业厅的人会主动找到咱们说提供服务。放到咱们这就是通常再设计的时候都是由客户首先发起请求,这样能够简化协议和程序。

可是也有,好比某个月我可能流量超出太多(目前常常这样),会有客服打电话提醒我要不要办理流量加油包,这种操做就是异步回调(asynchronous callback),也就是服务器会向客户发起请求。

相关文章
相关标签/搜索