【二】、如何进行网络通信
【二】、如何进行网络通信
前言
我觉得学习网络编程就是了解计算机之间如何进行网络通信,从上一篇《学网络编程前的计算机知识普及》中,我对计算机的一些基础常识进行了普及,让读者对计算机的软件、硬件以及操作系统有了一个清晰的认知。我在其中介绍了一个完整的计算机系统由三层结构构成,我再把那张图引用一下,方便后面知识的学习。
网络通信
大家要先了解两个词:
- 客户端(Client)
- 服务器端(Server)
你要是没听过这两个词,就先暂时把它们想象成是两个软件,我们假如想要开发这两个软件,让它们基于网络通信。那这个客户端软件和服务器端软件肯定不是操作系统吧,你要明白,我们学习Java、Python是为了成为应用开发程序员,而不是开发操作系统的,我们只需要用别人开发好的操作系统。那我们确定客户端软件和服务器端软件一定是应用软件,它们要想执行,过程跟上面图片中所讲的一样吧。如下图:
看见这张图你应该清晰了,然后我们说要基于网络让两台计算机进行通信,那这两台计算机之间应该有一根网线连接才能通信吧,然后客户端软件想把硬盘中的信息发送给服务器端软件,就需要先通过操作系统控制硬盘,然后通过网线传输给服务器端,服务器端要想给客户端发送消息亦是同理。
在这张图中有客户端软件到操作系统再到计算机硬件这个过程我们已经明白了,现在我们研究的重点应该是两台计算机进行信息传输中如何通过网络进行传输。
我举一个生活中用来通信的例子,比如说现在把我和我的电话(有线电话)看成是一台计算机,我是青海的,我要给河南的某同学打电话,首先两个电话是不是得用线连着,能保证打通,然后我跟他打电话,他是河南人,听不懂青海方言,那我得用河南话或者普通话跟他沟通,然后我又给一个广东的朋友打电话,我不会说广东话,他说广东话我也听不懂,因此我们只能用普通话沟通。那为了沟通方便,跟不同省份的人打电话,我们应该制定一套大家都能遵循的规范,一种协议,无论你是哪的人,在打电话的时候都要用统一的标准普通话。那我们不一定只给中国人打电话,如果我们要给外国人打电话,这个协议就不行了,世界的通用语言是英语,如果要在全世界之间通信,那我们得重新制定一份大家都能遵循的协议——英语。
再切换过来,我上面说把我和我的电话看成是一台计算机,那上面的情景就相当于是计算机和计算机之间进行通信,那计算机和计算机进行通信所遵循的协议就是互联网协议。什么是协议?就跟合同一样,大家都按上面的去做,换句话说,互联网协议就是计算机界的英语,这没毛病吧。看下图:
此篇完
此篇到此先结束吧,今天被车给撞了,虽然捡了一条命,但心情还是受影响的,不过还是把这篇补完了,世事无常,珍爱生命,且行且珍惜!
- 如何实现多个activity与一个网络线程进行通信
- Android网络开发中如何使用JSON进行网络通信---Android_JSON数据通讯方法解析
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- Android网络开发中如何使用JSON进行网络通信
- Android如何进行网络通信(与web交互)
- 浅谈JAVA中如何利用socket进行网络编程(二)
- 如何使用socket进行java网络编程(二)
- 基于非阻塞socket的多线程服务器的实现------一个服务器如何与多个客户端进行通信?
- 使用命名管道通过网络在进程之间进行通信
- 【zstack】云计算实战:浅谈私有云环境该如何进行网络规划
- iOS浅谈如何进行网络判断
- 如何进行网络营销策划
- 使用tcp socket进行跨进程/网络通信
- JAVA 中进行网络通信时 两端 序列化对象的类所处的包名必须一致
- 【源码】c#编写的安卓客户端与Windows服务器程序进行网络通信
- ipa如何通过网络进行安装
- 网络通信,告诉你移动端如何与后端服务器完成交流
- Android客户端与云服务器进行网络通信
- 如何使用TCP/IP与服务器进行通信-一个简单的聊天程序