前言
网络编程是一个很重要的点,毕竟现在的软件,很少有不需要网络的了,别的不说,很多软件一般都会有一个检测升级的功能。
但在了解网路编程之前,我们必须要有一个总体观念:
网络通信是对于整个电脑而言,而不单单是我们写的这个程序,我们所写的程序实际上是在调用我们电脑网络通信的能力。
也就是说,网络编程是一个与具体编程语言无关的一个概念,虽然各个语言实现的方式可能略有差别,但本质上功能、目的都是一样的。
网络编程基础
首先还是来考虑一个问题,我们为什么需要网络?
这个问题应该是很简单的,因为我们需要和他人交换信息、通信。
虽然目前大部分电脑的操作系统本身,都是支持多用户使用同一台电脑的。Windows系统也是一样,你可以在电脑上建立多个用户。
但实际上,目前是个人电脑占主导地位,即自己独占一台电脑。
也就是说,如果现在我想要和朋友通信,或者从别人的网页上下载资料,就只需要让我的电脑和它的电脑通信即可,即两台电脑互相通信。
但问题来了,通信肯定需要介质来传输信息,就算是我们说话,那也需要用空气传递声波,别人才能听到!
而电脑之间的传输介质就很多了,比如无线Wifi,光纤等等。
虽然介质很多,但对于我们而言,其实可以直接抽象一下,即两个电脑之间可以直接看作有一根线将它们连接了起来。
因为我们不需要关心各个电脑之间是用什么传输的,我们只需要知道它们能够传输信息即可。
但这只是最简化的想法,因为现实中,不可能给每个电脑或手机都拉一根线。
毕竟当前世界的电子产品数量大的惊人,所以很多时候,大家都是共用一根线来节约成本的。
但这时候就出现问题了,即一个电脑发送的消息,如何判断它能够准确的发送到目的计算机上呢?
因为大家都是共用的一根线传输数据!你得区分各个电脑啊!
所以这时候就有了地址,每个连上了网的电脑都会被分配一个地址,即我们常说的IP地址:
当然了,上面这些地址都是我乱写的,理解一下即可
即一台电脑想要发送信息时,需要让数据带上源地址和目的地址,然后交给本地网络设备发送。
网络设备会根据目的地址和自己的转发表决定转发到哪里;如果数据确实到达某台主机,主机发现目的地址是自己才交给上层,否则通常会丢弃。
请开通后继续阅读后续 70% 并运行完整示例~
DISCUSSION
评论 0
还没有评论,来留下第一条吧。